o2_定义一个类,封装方法和属性.py

 1 #  Learner BM
 2 """
 3 定义类
 4 class Name():
 5     定义方法
 6     def  方法名字 (self ,参数):
 7     pass
 8 
 9 
10 创建对象 ,创建对象类名后方无需冒号
11 
12 对象名 = 类名()
13 
14 
15 
16 """
17 #  小猫爱吃鱼类
18 class Cat():
19 
20     # 封装猫的方法
21     def eat(self):
22         print('eat fish')
23 
24     def drink(self):
25         print('drink water')
26 # 创建对象,对象可以创建多个,都能调用类的方法,内存引用地址不一致
27 tom = Cat()
28 #  创建第二个对象,内存引用地址不一致
29 jerry = Cat()
30 # 对象调用自己的方法,方法需要对象配合,函数不需要,直接调用就行了
31 tom.eat()
32 tom.drink()
View Code

o3_self详细介绍.py  (实现对象内部的跨方法调用属性和方法)

 1 #  Learner BM
 2 
 3 """
 4 类中定义方法是时候,每个类方法会默认多一个self参数
 5 
 6 self 参数类似java内部的this关键字,作用是,哪个对象调用此方法时,self保存的就是哪个对象的引用
 7 
 8     # 封装猫的方默认self参数代表那个对象调用,self就是哪个对象,可以访问此对象的属性,和其他方法
 9     # 当tom对象调用Cat类的eat方法时候,self指向tom的地址引用.在方法内部可以通过self.属性方式获取对象的属性
10     # 当jerry对象调用Cat类的eat方法时候,self指向tom的地址引用.在方法内部可以通过self.属性方式获取对象的属性
11 
12 """
13 
14 
15 class Cat():
16 
17     # 封装猫的方默认self参数
18     # 当tom对象调用Cat类的eat方法时候,self指向tom的地址引用.在方法内部可以通过self.属性方式获取对象的属性
19     # 当jerry对象调用Cat类的eat方法时候,self指向tom的地址引用.在方法内部可以通过self.属性方式获取对象的属性
20     def eat(self):
21         print('eat fish')
22         #  对象调用drink方法,通过self指向
23         self.drink()
24     def drink(self):
25         print('drink water')
26 # 创建对象,对象可以创建多个,都能调用类的方法,内存引用地址不一致
27 tom = Cat()
28 #  创建第二个对象,内存引用地址不一致
29 jerry = Cat()
30 # 对象调用自己的方法,方法需要对象配合,函数不需要,直接调用就行了
31 tom.eat()
32 
33 
34 """
35 一句话总结,在类中,对象的属性和方法需要 夸方法调用的时候,必须使用self关键字,
36 因为哪个对象调用方法,self中保存的就是那个对象的引用地址
37 """
View Code

 o4_初始化方法__init__.py

 1 #  Learner BM
 2 """
 3 定义类时候,需要初始化对象的方法可以直接使用def关键字定义,同理,定义对象的属性时,也使用方法,不过需要使用python提供的内置方法__init
 4 
 5 def __init(self:,name,age)
 6     self.name=
 7     self.age =
 8 """
 9 class Cat():
10     #  初始化方法,固定模式,用于定义类的属性
11     #  __init__方法无需调用,创建实例时候此方法会自动调用
12     #  init的参数,参数,创建对象时候,需传递的参数,
13     def __init__(self,name,age):
14         print('这是一个初始化方法,无需手动调用,自动调用')
15         #  初始化方式定义属性,能够实现夸方法调用
16         #self.name='Tom'  #  此方式不推荐,属性固定死,所有实例属性一致,可以采取使用参数形式传递
17 
18         self.name = name  #  左边的self.name是对象的属性名,右边的name是变量(通过参数传递进来,赋值给左边的变量)
19 
20         self.age = age # age同理name,方法内部调用的都是左边
21 
22     def run(self):
23         #    跨方法调用,属性name
24         print('%s在跑步' % self.name)
25     """
26         __del__方法,对象离开前,被自动调用的方法,删除对象前可以在程序中干点事
27 
28     """
29     def __del__(self):
30 
31         print('我是del方法,自动调用')
32     """
33        __Str__方法进行重写,输出对象自定义内容,print(对象),默认输出内存地址,可以进行更改,
34 
35        *****注意,Str方法需要返回值,return
36     """
37     def __str__(self):
38         # str方法必须要有返回值
39         return '我是一只猫,我的名字是 %s' %self.name
40 
41 
42 tom = Cat('Tom',38)
43 print(tom.name)
44 print(tom.age)
45 tom.run()
46 #  打印tom默认输出对象的内存地址,重写str方法,输出想要的内容
47 print(tom)
View Code

 

posted on 2020-03-08 11:06  RRRRRRR1  阅读(35)  评论(0)    收藏  举报