成员:
字段 静态字段(没一个对象都有一份),普通字段(每一个对象都不同的数据)
方法 静态方法(无需使用对象封装的内容),l类方法,普通方法(使用对象中的数据)
特性 普通特性(将方法伪造成字段)
self,对象调用
无self,类调用
@xxx.setter #特性里边的一个方法,修改旧的值重新赋一个新的值 注意上下两函数名必须相同
@property #特性,将方法伪造成字段
@staticmethod #静态方法,不用加self,可以加参数
@classmethod #类方法
私有,仅供自己使用,其他谁也不好使
在python里边成员修饰符只有两个,一个共有,一个私有。
#修饰符
class Foo:
__ox = "ox" #修饰符不能外部执行,只能内部执行。
def fetch(self):
print(Foo.__ox)
obj = Foo()
obj.fetch()
class Foo:
def __init__(self):
print("init")
def __call__(self,*args,**kwargs)
print("call")
r = Foo() #在类名后边加括号执行init
r() #在对象后边加括号是指行call
#特殊的常用方法:
__init__
__call__
——
#__getitem__
class Foo:
def __getitem__(self,item)
print(item)
r = Foo()
r["xxx"] 对象后边加个中括号就会去执行__getitem__方法,中括号里边可以自定义添加内容,对象会把内容传给item,print(item),就会把item接收到的内容给输出出来。
__setitem__
class Foo:
def __setitem__(self,key,value):
print(key,value)
r = Foo()
r["xxx"] = 123
对象后边加中括号就会执行__setitem__方法,一个key,一个value
__delitem__
class Foo:
def __delitem__(self,key):
print(key)
r = Foo()
del r["xxx"] #执行__delitem__方法,删除key
class Foo:
def __iter__(self):
yield 1
yield 2
yield 3
obj = Foo()
for i in obj:
print(i)
#执行for循环对象时,自动会执行对象的iter方法,生成器