前言:
现时咱们对“定义类python”大概比较关怀,各位老铁们都想要知道一些“定义类python”的相关内容。那么小编同时在网络上搜集了一些有关“定义类python””的相关文章,希望朋友们能喜欢,同学们快快来了解一下吧!类对象:类名所对应的内存空间类属性:所有的类对象和实例对象都可以直接访问类方法:第一个形参是类对象cls,其上方有@classmethod,可获取或修改类属性的数据实例对象:变量名所对应的内存空间实例属性:只属于某一实例对象,其他的实例对象 / 类对象无法直接访问该实例对象的属性值实例方法:可通过该方法获取或修改实例属性的数据
下面通过一段代码展示这些内容的相关用法:
'''类对象、属性、方法实例对象、属性、方法'''class Dog(object): type = '狗' # 类属性【可被类对象及实例对象访问】 def __init__(self, name): self.name = name # 实例属性 @classmethod def classM(cls, *args): # 类方法【可被类对象及实例对象访问并传参修改类属性】 # cls.type = str(args) print('类方法:%s' % cls.type) # 可修改类属性 --> 类方法:猫 def objectM(self, *args): # 实例方法, 【可被类对象及实例对象访问并传参修改实例属性】 # self.name = args[2] print('实例方法:' + self.name)# 实例对象a = Dog('旺财') # 实例对象和类对象都能直接调用类属性print(a.type) # --> 狗print(Dog.type) # --> 狗# 类对象可以直接修改类属性【但不能直接修改实例属性】Dog.type = '猫'print(Dog.type) # --> 猫print(a.type) # --> 猫# 实例对象可以直接修改实例属性【但不能直接修改类属性】a.name = '新旺财'print(a.name) # --> 新旺财# 实例对象和类对象都能直接调用类方法【都可通过对类方法传参,以实现修改类属性】a.classM() # 结果见该方法Dog.classM() # 结果见该方法# 实例对象和类对象都能直接调用实例方法【都可通过对实例方法传参,以实现修改实例属性】a.objectM() # --> 实例方法:新旺财Dog.objectM(Dog('小虎')) # Dog是类对象,Dog()是实例对象 --> 实例方法:小虎# 实例对象直接"赋值修改"类属性实际是相当于创建了一个与类属性同名的实例属性,实例对象无法对类属性赋值修改;【除非通过对类方法传参可实现修改类属性】a.type = '大狗' # 即相当于a多了个type属性,并不影响Dog中的typeprint(Dog.type) # 猫print(a.type) # 大狗print(Dog) # --> <class '__main__.Dog'> 【说明是类对象】print(Dog('狗子')) # --> <__main__.Dog object at 0x0000020792FB0C50> 【说明是实例对象】print(a) # --> <__main__.Dog object at 0x0000020792FB0748> 【说明是实例对象】
结束。
版权声明:
本站文章均来自互联网搜集,如有侵犯您的权益,请联系我们删除,谢谢。
标签: #定义类python