Python基础之面向对象基础
- 1.面向对象
- 2.类和对象
- 3.构造函数__init__
- 4.析构函数__del__
1.面向对象
面向过程:注重开发的步骤与过程
面向对象:注重组合调用资源解决问题
2.类和对象
类:相同属性与功能的一类事物(虚拟抽象的,就像飞机图纸)
对象:类的具体表现,面向对象的核心(现实的,就像飞机)
类(class):
三要素:
类名:(首字母大写,驼峰命名法)
属性:对象的特征描述
方法:对象具有的行为
一个类可实例多个对象,self是实例方法的第一个参数,代表的是当前调用此方法的对象本身
实例属性:self.属性名
1.类属性属于类,实例属性属于对象
2.类属性在内存中只保留一份(属公有),实例属性在每个对象中都保留一份(为对象所有,属私有)
3.类属性 类可访问(类名.属性名),实例对象也可访问(对象名.属性名),实例属性 类不可访问(类名查看报错),对象可访问(方法内用:self.属性名/方法外;对象名.属性名)
4.当类的属性与实例的属性名一致时,类名.属性名 查看类属性 对象名.属性名 查看实例属性
1
2
3
4
5
6
7
8
9
10
11
12
13#类及类属性 class H(object): hair='gold'#类属性 #增删查改类中单个属性 print(H.hair)# gold 查 H.hair='black'#改 print(H.hair)# black H.name='Python'#增 print(H.name)# Python del H.name print(H.name)# type object 'H' has no attribute 'name'
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16class Par(object): name='python' def speak(self): print('实例方法中的self',self)#self 表示当前调用的对象 #实例化对象 对象名=类名() p1=Par() #打印实例化对象,输出的是对象在内存的地址 print('实例化对象p1',p1)# 实例化对象p1 <__main__.Par object at 0x000002873D9261D0> #对象调用类中的实例方法 p1.speak()# 实例方法中的self <__main__.Par object at 0x000002873D9261D0> #对象调用类的属性 print(p1.name)# python p2=Par() print('第二次实例化p2',p2)# 第二次实例化p2 <__main__.Par object at 0x000002873DC26320> p2.speak()# 实例方法中的self <__main__.Par object at 0x000002873DC26320>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18#实例属性 class A(object): name='python'#类属性 def work(self):#实例方法 self代表实例对象本身 print(f'这是实例方法中的实例属性{self.age}')#self.age 实例属性 #实例化对象 a1=A() #实例属性赋值 a1.age=19 a1.work()# 这是实例方法中的实例属性19 #添加实例属性 a1.job='py' print(a1.job)# py print(a1.age)# 19 del a1.age print(a1.age)# 'A' object has no attribute 'age'
对象=类名() ,是一个实例化的过程,调用了类中new方法, 为此对象分配空间,返回对象地址赋给对象名
实例化对象格式: 对象名=类名()
实例方法由对象调用,至少有一个self参数,执行实例方法时,自动将该方法的对象赋值给self
3.构造函数__init__
此方法通常用来做实例属性初始化 或 赋值 操作 类被实例化时会自动执行此方法
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30#构造方法 #__init__方法 实例化会自动调用此方法 class A(object): def __init__(self): print('这是构造方法中的init') a=A()# 这是构造方法中的init #举例 class Her(object): name='这是类属性' age=10 def __init__(self,hp=500,at=200): self.name='自在'#实例属性 self.hp=hp#生命值 self.at=at#攻击力 def move(self): print(f'{self.name}在移动') def attack(self): print(f'{self.name}的攻击力为{self.at}') #实例化对象 h=Her() h.move()# 自在在移动 h.attack()# 自在的攻击力为200 #传参 h1=Her(300,80) h1.attack()# 自在的攻击力为80 #通过类名查看类属性 print(Her.name)# 这是类属性 #通过对象名查看类属性 若与实例属性名相同则查看的是实例属性值 print(h1.age) # 10
4.析构函数__del__
析构方法: 是对象在垃圾回收的时候起作用的一个方法,它的执行一般也意味着此对象不能继续被引用,回收内存。
删除对象时 解释器会默认调用 del 方法
1
2
3
4
5
6
7#格式: class A(object): def __del__(self): print('销毁') a=A() print('最后一句') 此句会在’销毁‘前执行
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17#析构方法 class A(object): def __init__(self): print('这是init方法') def __del__(self): print('销毁') a=A()# 这是init方法 print('这是最后一句') print('python') # 这是最后一句 # python # 销毁 del a print('这是最后一句') # 销毁 # 这是最后一句
- 究竟是阳光明媚了夏天,还是夏天沾了你的光
最后
以上就是激昂水壶最近收集整理的关于Python基础学习之面向对象基础1.面向对象2.类和对象3.构造函数__init__4.析构函数__del__的全部内容,更多相关Python基础学习之面向对象基础1内容请搜索靠谱客的其他文章。
发表评论 取消回复