心蓝的博客 心蓝的博客
首页
  • 零基础

    • python零基础入门
  • 专项

    • 正则表达式
  • web框架

    • django框架
    • drf
技术
  • 友情链接
关于
收藏
  • 分类
  • 标签
  • 归档

心蓝

人生苦短,我用python
首页
  • 零基础

    • python零基础入门
  • 专项

    • 正则表达式
  • web框架

    • django框架
    • drf
技术
  • 友情链接
关于
收藏
  • 分类
  • 标签
  • 归档
  • 编程基础

  • python开发环境搭建

  • 基本数据类型

  • 程序流程控制

  • 函数与代码复用

  • 面向对象

    • 类和对象
    • 属性
      • 类属性
        • 类属性的定义
        • 类属性的访问
      • 对象属性
        • 对象属性的定义
        • 对象属性的访问
        • 案例:
    • 方法
    • 继承
    • super函数
    • 多态
    • 私有化
    • 自省与反射机制
  • 模块和包

  • 文件IO操作

  • python零基础入门
  • 面向对象
心蓝
2022-12-23
目录

属性

# 属性

在编程的过程中经常会使用x.y的表达式,我把任何跟在点号之后的名称都称为属性。所以表达式x.y中,y是x的一个属性。

类有属性,对象也有属性。

# 类属性

# 类属性的定义

直接在类中定义的变量(与class语句只有一个缩进),就是类属性。

案例:

给Point类创建一个name属性用来表示点类的名称。

class Point:
    """
    表示平面坐标系中的一个点
    """
    name = '点'
1
2
3
4
5

# 类属性的访问

类属性直接通过类和对象以句点法访问,语法格式如下:

类.类属性名
对象.类属性名
1
2

案例:

# 接上面的代码
>>> print(Point.name)  # 直接通过类名访问类属性
点
>>> point=Point()  # 创建一个实例
>>> print(point.name)     # 通过对象访问类属性
点
1
2
3
4
5
6

注意:如果不存在的属性则会抛出异常

>>> print(Point.a)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
AttributeError: type object 'Point' has no attribute 'a'
1
2
3
4

# 对象属性

# 对象属性的定义

对象属性一般定义在构造方法中,详见下面构造方法一节中。

也可以通过句点法对象.对象属性以赋值的方式直接定义对象属性。

案例:

平面坐标系中的每个点都有x坐标和y坐标,通过类Point创建一个对象表示点(x=1,y=2)

>>> point = Point()
# 通过赋值直接定义对象属性
>>> point.x = 1
>>> point.y = 2
1
2
3
4

# 对象属性的访问

通过句点法对象.对象属性可以访问对象属性。

# 案例:

访问上面案例中point的x坐标和y坐标

>>> print(point.x)
1
>>> print(point.y)
2
1
2
3
4

访问对象属性时,首先会检查对象是否拥有此属性,如果没有则去创建对象的类中查找有没有同名的类属性,如果有则返回,如果都找不到则抛出AttributeError的异常

本文完,感谢你的耐心阅读,如有需要可加我微信,备注「博客」并说明原因,我们一起进步,下次见。

上次更新: 2022/12/23, 19:09:35
类和对象
方法

← 类和对象 方法→

最近更新
01
requests让接口测试如此简单 原创
03-31
02
最简明的python正则教程
03-30
03
pycharm激活码
12-30
更多文章>
Theme by Vdoing | Copyright © 2019-2025 心蓝
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式