python之面向对象

Posted cvlove

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python之面向对象相关的知识,希望对你有一定的参考价值。

(一)构造方法和实例方法

__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)实例变量

实例变量只能通过对象名访问,无法通过类名直接访问。

 

代码:

未完待续 剩下的明天学

以上是关于python之面向对象的主要内容,如果未能解决你的问题,请参考以下文章

VSCode自定义代码片段——JS中的面向对象编程

VSCode自定义代码片段9——JS中的面向对象编程

PHP面向对象之选择工厂和更新工厂

python基础之面向对象

Python之面向对象:面向对象基础

python之面向对象编程一