方法
- 普通方法: 由对象调用;至少一个self参数;执行普通方法时,自动将调用该方法的对象赋值给self;
- 类方法:由类调用; 至少一个cls参数;执行类方法时,自动将调用该方法的类复制给cls;
- 静态方法:由类调用;无默认参数;
class Foo:
def ordFun(self):
""" 定义普通方法,至少有一个self参数 """
print '普通方法'
@classmethod
def classFun(cls):
""" 定义类方法,至少有一个cls参数 """
print '普通方法'
@staticmethod
def staticFun():
""" 定义静态方法 ,无默认参数"""
print '静态方法'
"""调用普通方法"""
f = Foo()
f.ordFun()
"""调用类方法"""
Foo.classFun()
"""调用静态方法"""
Foo.staticFun()
类的成员修饰
- 静态字段
- 公有静态字段:类可以访问;类内部可以访问;派生类中可以访问
- 私有静态字段:仅类内部可以访问;
class C:
__name = "私有静态字段"
name = "公有静态字段"
def func(self):
pass
- 普通字段
- 公有普通字段:对象可以访问;类内部可以访问;派生类中可以访问
- 私有普通字段:仅类内部可以访问;
class C:
def __init__(self):
self.foo = "公有普通字段"
self.__foo = "私有普通字段"
类的特殊成员
- __ doc__ :表示描述信息
- __ module __ 和 __ class__ :表示当前操作的对象在那个模块 / 表示当前操作的对象的类是什么
- __ init__ :构造方法,通过类创建对象时,自动触发执行。
- __ del__ : 析构方法(结束生命周期执行),当对象在内存中被释放时,自动触发执行。
- __ call__: 对象后面加括号,直接执行其中的内容。
- __ dict__:类或对象中的所有成员。
- __ str__:如果一个类中定义了该方法,那么在打印 对象 时,默认输出该方法的返回值。
- __ getitem__、__ setitem__、__ delitem__:用于索引操作(例如字典) 表示获取、设置、删除数据 (类似JS中的set get)
- __ iter__:迭代器