Python类中的方法和属性 python 类的属性和方法_Python类中的方法和属性

类的定义

1.使用class

class ClassName: /ClassName(object):

(缩进)'类文档字符串'

(缩进)类属性

(缩进)类方法

(缩进)cls.类变量,方法的变量/局部变量

(缩进)静态方法

(缩进)方法的变量/局部变量

(缩进)实例方法

(缩进)self.实例变量,方法的变量/局部变量

(缩进)其它语句(在类对象定义时会执行一次,之后不在执行)

2.使用元类type()

type()函数依次传入3个参数:

>类对象名

>继承的父类集合

>实例方法名称与函数绑定

* 如{‘实例方法名’:function},’类属性’:属性值...或dict(实例方法名=function,类属性=属性值,...) *

类的属性

1.分类

>定义类时为类静态添加的类属性

·在类的内部,方法的外部定义 属性名=属性值

·类生成后由系统自动赋值的部分内置类属性

>定义类后为类动态添加的类属性

·添加类属性:类对象.新属性=属性值

·初始化类静态属性:使用 类对象.静态属性 即可初始化类静态属性

2.内置的类属性

>在类生成后由系统自动赋值

·类的属性/方法集

属性名:__dict__

属性值:一个map对象,包含一个字典,由类的属性/方法名组成

说明: 可以操作该字典从而改变实例属性和动态添加方法

·类名

属性名:__name__

属性值:类名

·类定义所在的模块

属性名:__module__

属性值:类所在模块(在本模块属性值为__main__,在其它模块属性值为其它模块名

·类的所有父类

属性名:__bases__

属性值:包含了一个由所有父类组成的元组

>特殊赋值方式

·类的文档字符串

属性名:__doc__

属性值:该类的文档说明

赋值方法:* 该属性先会被赋值为类体下的说明字符串,若之后再类体中重新赋给该属性值,则以后者为最终属性值

>主动在类体中赋值

·限制类的实例属性/方法

属性名:__slots__

属性值:__slots__=(sx,sx..)

说明:

* 用于限制给该类的实例添加属性/方法,但不限制类

* 类中有__slots__属性时,类不能使用__slot__元组中的属性/方法名作为类属性/方法,而其实例只能使用__slot__元组中的属性/方法名作为实例属性/方法.

* 该属性对其子类的实例无作用,除非子类也有__slots__属性,则子类实例允许定义的属性/方法就是自身的__slots__加上父类的__slots__