#类成员: #字段 self.xy =qq 。 xy=qq #普通字段 (保存在对象里面) #直接通过点(.)+ 字段 进行调用 #静态字段 (保存在类里面) #静态字段属于类,在内存只保留一份 。 把公共的字段 放到类中 ,节省内存等好处 #代码从上到下解释到类就创建了 #可以通过 类.静态字段 进行访问 #方法 def xx() # (保存在类里面) #通过点(.) + 方法名 + 括号 进行调研 #通过 类 点(.) 方法名也可以调用 。 还是要在前面先实例化一个对象 #静态字段class human: address = "earth" #静态字段 def __init__(self,age): self.age = age # 普通字段 h1 = human(‘20‘)print(human.address) #通过类访问 静态字段print(h1.address) #通过对象访问 静态字段 : 对象--> 类 --> 静态字段print(h1.age) #通过对象访问 普通字段 #静态方法class Foo: def bar(self): print(‘普通方法‘) @staticmethod # 添加此装饰器后变成静态方法 def bar1(a): # 此处已经不需要self 了 print(‘静态方法:%s‘ %a) #f=Foo() # 不需要创建对象,也可以直接调用静态方法 (相当于一个函数了)Foo.bar1(100) #通过类直接调用 #类方法class Foo: @classmethod def classmd(cls): # cls 和 self意义差不多 ,此处写成 cls 。 cls 是当前类 print(cls) # cls 是类名,自动会传入 print(‘类方法‘) Foo.classmd() #属性class Foo: @property # 加了这个装饰器,p1 这个方法 调用起来就也可以和字段一样调用了。 def p1(self): return 123 @p1.setter def p1(self,var): print(var) @p1.deleter def p1(self): print(‘xx‘)
obj = Foo()r=obj.p1 # 直接调用不需要括号 , 会直接调用 @property 下的 p1print(r)obj.p1=100 # 给他赋值(实际不会赋值), 会执行@p1.setter 下面的p1 (里面具体想做什么,你可以自己写) # 就是一个语法对应关系 和 赋值没关系del obj.p1 # 删除它 (实际不会删除它), 会执行 @p1.deleter 下面的p1 # 就是一个语法对应关系 del 只是语法 不会删除的
时间: 2024-10-20 07:50:08