目录
1.dir内置函数
dir()传入标识符/数据,可以直接查看对象类的所有属性和方法。
__方法名__格式的方法是python内置的属性/方法
__new__:创建对象时自动调用
__init__:对象被初始化时自动调用
__del__:对象在内存空间中销毁前自动调用
__str__:返回对象描述信息,print()函数输出使用
2、类的定义
注意:类名要使用大驼峰法命名
对象名 = 类名() # 创建类对象
面向对象中引用的概念:
python中使用类创建对象,对象变量中存储着对象在内存中的地址,也就是对象变量引用了对象。
使用print()函数可以输入对象是由哪个类创建以及变量在内存中地址(十六进制)
3、方法中的self参数
3.1给对象添加属性
在类的外部添加属性(不推荐):对象.属性 = 属性值
3.2使用self在方法内部输出对象属性
哪个对象调用方法,self参数就是哪一个对象的引用
调用方法时不需要传递self参数
在方法内部,可以使用self.对象属性访问对象属性,也可以通过self.调用对象的其他方法。
在类的外部,通过对象名.访问对象的属性和方法
在类的内部,通过self.访问对象的属性和方法
4、初始化方法
在使用类名()创建对象时会自动执行以下操作:
1.为对象在内存中分配空间--创建对象
2.为对象的属性设置初始值--init(初始化方法)
init方法用来定义类有哪些属性
self.属性名 = 属性初始化值
定义属性后,使用类创建对象,对象都会带上该属性。
4.1初始化方法改造
如果想在创建对象时,就设置对象的属性,可以对__init__方法进行改造
1.把希望设置的属性值定义为__init__方法的参数
2.在方法的内部,使用self.属性名 = 形参
3.创建对象时,使用类名(属性1,属性2)调用
5、内置方法和属性
class Cat:
def __init__(self, new_name):
self.name = new_name
print("%s 来了" % self.name)
def __del__(self):
print("%s去了" % self.name)
tom = Cat("Tom")
print(tom.name)
del tom
# print(tom.name)
print("_" * 20)
__del__方法,对象从内存中销户时自动调用,如果想在对象被销毁前操作什么,可以定义在这个方法里面
__str__方法,默认情况下,print(对象)是输出对象是由哪个类创建以及对象在内存中十六进制地址,可以对__str__方法进行改造,输出想要的内容。
# 对象生命周期:从创建对象开始到调用__del__结束
# __def__方法:当前程序退出时,对象从内存空间自动调用
# 作用:清楚资源操作
class Cat:
"""
猫类
"""
def __init__(self, name):
"""
初始化方法
:param name:
"""
self.name = name
def __str__(self):
"""
对象描述性信息方法
:return:
"""
print("使用print()方法,打印对象时自动调用")
return "姓名是:%s" % self.name # 只能返回字符串,不能返回其他数据类型
def eat(self):
print("%s爱吃鱼" % self.name)
# 局部变量作用的范围只是当前方法,如果想让下面方法调用局部变量
# 需要把局部变量保存为属性
self.file = open("new.txt", "w", encoding="utf-8")
self.file.write("hello") # 当写入文件时报错,程序崩溃,__del__方法还是会执行
def __del__(self):
"""
删除的魔法方法
清楚资源的操作,文件的资源,网络套接字的资源,数据库连接资源,驱动资源等
:return:
"""
print("当前程序退出时,对象从内存空间销毁,自动调用")
print("清除资源操作")
self.file.close() # 程序崩溃也要关闭资源操作
tom = Cat("汤姆")
print(tom)
tom.eat()