#博学谷IT学习技术支持#
目录
一、前言
二、__init__方法
三、__str__ 方法
四、__del__ 方法
五、结尾
一、前言
小伙伴们,有一次见面了,本次分享一个很常见、很常用的Python基础知识点,在Python 中有一类方法, 以两个下划线开头,两个下划线结尾,并且在满足某个条件的情况下, 会自动调用, 这类方法称为 魔法方法。
接下来,咱们直接上干货。
二、__init__方法
1. 什么情况下自动调用
> 创建对象之后会自动调用
2. 有什么用, 用在哪
> 1. 给对象添加属性的, (初始化方法, 构造方法) 2. 某些代码, 在每次创建对象之后, 都要执行,就可以将这行代码写在 __init__ 方法
3. 书写的注意事项
> 1. 如果 init 方法中,存在出了 self 之外的参数, 在创建对象的时候必须传参
"""
猫类, 属性 name, age , show_info(输出属性信息)
"""
class Cat:
# 定义添加属性的方法
def __init__(self, name, age): # 这个方法是创建对象之后调用
self.name = name # 给对象添加 name 属性
self.age = age # 给对象添加 age 属性
# 输出属性信息
def show_info(self):
print(f'小猫的名字是: {self.name}, 年龄是: {self.age}')
# 创建对象,不要在自己类缩进中创建
# Cat() # 创建对象 ,会输出
blue_cat = Cat('蓝猫', 2)
blue.show_info()
# 创建黑猫
black_cat = Cat('黑猫', 3)
black_cat.show_info()
三、__str__ 方法
1. 什么情况下自动调用
> 使用 print(对象) 打印对象的时候 会自动调用
2. 有什么用, 用在哪
> 在这个方法中一般书写对象的 属性信息的, 即打印对象的时候想要查看什么信息,在这个方法中进行定义的
> 如果类中没有定义 __str__ 方法, print(对象) ,默认输出对象的引用地址
3. 书写的注意事项
> 这个方法必须返回 一个字符串
class Cat:
# 定义添加属性的方法
def __init__(self, n, age): # 这个方法是创建对象之后调用
self.name = n # 给对象添加 name 属性
self.age = age # 给对象添加 age 属性
def __str__(self):
# 方法必须返回一个字符串, 只要是字符串就行,
return f'小猫的名字是: {self.name}, 年龄是: {self.age}'
# 创建对象,不要在自己类缩进中创建
# Cat() # 创建对象 ,会输出
blue_cat = Cat('蓝猫', 2)
print(blue_cat)
# 创建黑猫
black_cat = Cat('黑猫', 3)
print(black_cat)
四、__del__ 方法
__init__ 方法, 创建对象之后,会自动调用 (构造方法)
__del__ 方法, 对象被删除销毁时, 自动调用的
1. 调用场景, 程序代码运行结束, 所有对象都被销毁
2. 调用场景, 直接使用 del 删除对象
class Demo:
def __init__(self, name):
print('我是 __init__, 我被调用了 ')
self.name = name
def __del__(self):
print(f'{self.name} 没了, 给他之后处理...')
# Demo('a')
a = Demo('a')
b = Demo('b')
del a # 删除销毁 对象,
print('代码运行结束')
五、结尾
1. 什么情况下自动调用
> 创建对象之后会自动调用
2. 有什么用, 用在哪
> 1. 给对象添加属性的, (初始化方法, 构造方法) 2. 某些代码, 在每次创建对象之后, 都要执行,就可以将这行代码写在 __init__ 方法
3. 书写的注意事项
> 1. 如果 init 方法中,存在出了 self 之外的参数, 在创建对象的时候必须传参
1. 什么情况下自动调用
> 使用 print(对象) 打印对象的时候 会自动调用
2. 有什么用, 用在哪
> 在这个方法中一般书写对象的 属性信息的, 即打印对象的时候想要查看什么信息,在这个方法中进行定义的
> 如果类中没有定义 __str__ 方法, print(对象) ,默认输出对象的引用地址
3. 书写的注意事项
> 这个方法必须返回 一个字符串
class Cat:
# 定义添加属性的方法
def __init__(self, n, age): # 这个方法是创建对象之后调用
self.name = n # 给对象添加 name 属性
self.age = age # 给对象添加 age 属性
def __str__(self):
# 方法必须返回一个字符串, 只要是字符串就行,
return f'小猫的名字是: {self.name}, 年龄是: {self.age}'
# 创建对象,不要在自己类缩进中创建
# Cat() # 创建对象 ,会输出
blue_cat = Cat('蓝猫', 2)
print(blue_cat)
# 创建黑猫
black_cat = Cat('黑猫', 3)
print(black_cat)
四、__del__ 方法
__init__ 方法, 创建对象之后,会自动调用 (构造方法)
__del__ 方法, 对象被删除销毁时, 自动调用的
1. 调用场景, 程序代码运行结束, 所有对象都被销毁
2. 调用场景, 直接使用 del 删除对象
class Demo:
def __init__(self, name):
print('我是 __init__, 我被调用了 ')
self.name = name
def __del__(self):
print(f'{self.name} 没了, 给他之后处理...')
# Demo('a')
a = Demo('a')
b = Demo('b')
del a # 删除销毁 对象,
print('代码运行结束')
五、结尾
__init__ 方法, 创建对象之后,会自动调用 (构造方法)
__del__ 方法, 对象被删除销毁时, 自动调用的
1. 调用场景, 程序代码运行结束, 所有对象都被销毁
2. 调用场景, 直接使用 del 删除对象
今天分享给大家魔法方法只有3个,还有一个__main__的待分享之后大家去自行了解吧。
期待下次相见吧!



