面向对象
class Foo:
#静态字段,属于类
country=‘中国‘
def __init__(self,name):
#普通字段
self.name=name
#普通方法
def show(self):
print(self.name)
#静态方法
@staticmethod
def sta(a1,a2):
print(a1,a2)
#类方法
@classmethod
def classmd(cls):
#cls是类名
print(cls)
print(‘classmethod‘)
#属性/特性
@property def f1(self): def f2(self): def f2(self):
def per(self,a): 或 return 1 print(a) del self.name
print(a) return 1 删除对象的name字段
return 1 per=property(fget=f1,fset=f2,fdel=f3)
Foo.country
obj=Foo(‘anner‘)
obj.name
Foo.show(obj)
obj.show()
Foo.sta(1,2)#静态方法,通过类名就可以调用
Foo.classmd()#系统自动将类名传入,赋给cls参数
a=obj.per=123#属性/特性,调动时跟调用字段相同,不用加括号。为其赋值传进参数
del obj.per#属性/特性,调用f3,删除对象的name字段
print(a)
类成员:
#字段
——普通字段,保存在对象中,只能通过对象访问
——静态字段,保存在类中,执行可以通过对象访问,也可以通过类访问
#方法
——普通方法,保存在类中,由对象调用self==>对象
——静态方法,保存在类中,加装饰器,由类可以直接调用,self就不是必须的了
——类方法,保存在类中,加装饰器,由类可以直接调用,cla==>当前类
#属性/特性
——普通方法加装饰器,但调动时跟调用字段相同,不用加括号。
########应用场景:
如果对象中需要保存一些值,执行某功能时,需要使用对象中的值==>普通方法
不需要任何对象中的值,静态方法
在列表,集合,字典调用中索引值可能通过方法调用得出,所以写法会比较乱;所以利用特性装饰方法后可以省去方法调用时的括号,便于阅读
原文地址:https://www.cnblogs.com/TianLiang-2000/p/11594000.html