(一)构造方法和实例方法
__init__() 为构造方法,第一个参数必须为 self 参数。
self 代表该方法的调用者,即谁在调用该方法,那么 self 就代表谁。
类里面的jump()和run()方法为实例方法。
代码:
1 class Dog: 2 def __init__(self): 3 print(self,"在调用构造方法") 4 # 定义一个jump()方法 5 def jump(self): 6 print(self,"正在执行jump方法") 7 # 定义一个run()方法,run()方法需要借助jump()方法 8 def run(self): 9 print(self,"正在执行run方法") 10 # 使用self参数引用调用run()方法的对象 11 self.jump() 12 dog1 = Dog() 13 dog1.run() 14 dog2 = Dog() 15 dog2.run()
结果:
<__main__.Dog object at 0x00000276B14B12B0> 在调用构造方法 <__main__.Dog object at 0x00000276B14B12B0> 正在执行run方法 <__main__.Dog object at 0x00000276B14B12B0> 正在执行jump方法 <__main__.Dog object at 0x00000276B14B1F28> 在调用构造方法 <__main__.Dog object at 0x00000276B14B1F28> 正在执行run方法 <__main__.Dog object at 0x00000276B14B1F28> 正在执行jump方法
(二)类属性和实例属性
(1)类变量
类变量推荐直接用类名访问,但也可以使用对象名访问。
代码:
1 class Address: 2 detail = ‘广州‘ 3 post_code = ‘510660‘ 4 5 def info(self): 6 # 尝试直接访问类变量 7 # print(detail) # 报错 8 # 通过类来访问类变量 9 print(Address.detail) # 输出 广州 10 print(Address.post_code) # 输出 510660 11 12 13 # 创建 2 个类对象 14 addr1 = Address() 15 addr1.info() 16 addr2 = Address() 17 addr2.info() 18 # 修改Address类的类变量 19 Address.detail = ‘佛山‘ 20 Address.post_code = ‘460110‘ 21 addr1.info() 22 addr2.info() 23 24 #动态地为类和对象添加类变量 25 Address.depict = "佛山很美" 26 print(addr1.depict) 27 print(addr2.depict)
结果:
广州 510660 广州 510660 佛山 460110 佛山 460110 佛山很美 佛山很美
(2)实例变量
实例变量只能通过对象名访问,无法通过类名直接访问。
代码:
未完待续 剩下的明天学
原文:https://www.cnblogs.com/cvlove/p/11681821.html