Python 编程基础 | 第五章-类与对象 | 5.2、数据成员

一、数据成员

数据成员是指类中定义的变量,即属性,根据定义位置,又可以分为类属性实例属性,下面分别进行介绍。

1、实例属性

实例属性是指定义在类的方法中的属性,该属性属于当前实例,例如:定义一个Dog类,在该类的__init__()方法中定义2个实例属性,代码如下:

class Dog:
    "实现一个小狗类"
    def __init__(self, name, age) -> None:
        self.name = name
        self.age = age
    
    def sit(self):
        "小狗接收到蹲下指令"
        print(f"{self.name} is now sitting")

my_dog = Dog("jack", 10)
my_dog.sit()

可以使用.来访问对象的属性,但是,实例属性只能通过实例名访问,如果通过类名访问会报错

2、类属性

类属性是指在定义类中,并且在函数体外的属性,类属性可以在类的所有实例之间共享,例如:定义一个雁类,在该类中定义3个类属性,代码如下:

class Geese:
    """大雁类"""
    beak_1 = "喙,比较尖"   # 定义类属性(喙)
    wing_1 = "翅膀,比较大" 
    claw_1 = "爪,行走自如"

    def __init__(self):
        print("我是大雁类!我有一下特征:")
        print(Geese.beak_1)   # 访问类属性
        print(Geese.wing_1)
        print(Geese.claw_1)

my_geese = Geese()

通过类名.的方式访问类属性

3、内置类属性

Python有一些内置的类属性,记录类相关的信息,如下:

属性 功能
__dict__ 类的属性(包含一个字典,由类的数据属性组成)
__doc__ 类的文档字符串
__name__ 类名
__module__ 类定义所在的模块
__bases__ 类的所有父类构成的元素

示例:

class Dog:
    "实现一个小狗类"
    def __init__(self, name, age) -> None:
        self.name = name
        self.age = age
    
    def sit(self):
        "小狗接收到蹲下指令"
        print(f"{self.name} is now sitting")

print (f"Dog.__doc__:{Dog.__doc__}")
print (f"Dog.__name__:{Dog.__name__}")
print (f"Dog.__module__:{Dog.__module__}")
print (f"Dog.__dict__:{Dog.__dict__}")
print (f"Dog.__bases__:{Dog.__bases__}")

你可能感兴趣的:(Python,编程基础,python,开发语言)