概述
Python基础之面向对象基础
- 1.面向对象
- 2.类和对象
- 3.构造函数__init__
- 4.析构函数__del__
1.面向对象
面向过程:注重开发的步骤与过程
面向对象:注重组合调用资源解决问题
2.类和对象
类:相同属性与功能的一类事物(虚拟抽象的,就像飞机图纸)
对象:类的具体表现,面向对象的核心(现实的,就像飞机)
类(class):
三要素:
类名:(首字母大写,驼峰命名法)
属性:对象的特征描述
方法:对象具有的行为
一个类可实例多个对象,self是实例方法的第一个参数,代表的是当前调用此方法的对象本身
实例属性:self.属性名
1.类属性属于类,实例属性属于对象
2.类属性在内存中只保留一份(属公有),实例属性在每个对象中都保留一份(为对象所有,属私有)
3.类属性 类可访问(类名.属性名),实例对象也可访问(对象名.属性名),实例属性 类不可访问(类名查看报错),对象可访问(方法内用:self.属性名/方法外;对象名.属性名)
4.当类的属性与实例的属性名一致时,类名.属性名 查看类属性 对象名.属性名 查看实例属性
#类及类属性
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'
class 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>
#实例属性
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__
此方法通常用来做实例属性初始化 或 赋值 操作 类被实例化时会自动执行此方法
#构造方法
#__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 方法
#格式:
class A(object):
def __del__(self):
print('销毁')
a=A()
print('最后一句') 此句会在’销毁‘前执行
#析构方法
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.面向对象2.类和对象3.构造函数__init__4.析构函数__del__所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复