目录
四、举例说明-创建对象时自动调用初始化方法,且给对象添加属性
一、魔法方法
1、概念
-
在Python中存在一类方法,以两个下划线开头,两个下划线结尾;
-
在满足某个条件的情况下,会自动调用,这一类方法,称之为魔法方法。
2、学习步骤
-
作用
-
自动调用的时机(什么情况下会自动调用);
-
应用场景(什么时候可以使用魔法方法);
-
注意事项;
-
举例说明;
二、初始化方法:__init__()
1、作用
-
__init__()方法是专门用来定义一个对象具有哪些属性的方法,创建对象(类名( ))的时候会自动调用。
2、调用时机
-
在创建对象之后,会自动调用,为对象在内存中 分配空间。
3、应用场景
-
给对象添加属性,为对象的属性 设置初始值。
三、对象添加属性的两种方式
1、在类的外部
注意:这种给对象添加属性的方式不推荐。
2、在初始化方法中给对象添加属性
注意:如果 属性是会变化的,则可以将这个属性的值作为参数传递,在创建对象的时候,必须传递实参值。
class Cat:
# __init__()方法是专门用来定义一个对象具有哪些属性的方法。
# 在创建对象时,会自动调用,为对象在内存中 分配空间。
# 给对象添加属性,为对象的属性 设置初始值。
def __init__(self,name):
print('初始化方法~')
# 在创建对象的同时,给对象添加一个name属性
# 在类的方法的内部,通过 self.属性名 = 形参 接收创建对象时外部传递的实参值。
self.name = name
def eat(self):
print(f"{self.name}:爱吃鱼...\n")
# 通过tom类创建一个对象
tom = Cat
# 在创建对象时,通过 类名(属性1的实参,属性2的实参......)给初始化方法中所定义的对象属性传值。
t = tom('黏黏')
t.eat()
四、举例说明-创建对象时自动调用初始化方法,且给对象添加属性
class Cat:
# __init__()方法是专门用来定义一个对象具有哪些属性的方法。
# 在创建对象时,会自动调用,为对象在内存中 分配空间。
# 给对象添加属性,为对象的属性 设置初始值。
def __init__(self,name):
# 验证使用,正式代码中不需要
print('我是__init__()方法,我被调用啦~')
# self:调用__init__()方法的对象
#形参name的值 = 创建对象时传入的实参
self.name = name
def eat(self):
print(f"{self.name}:爱吃鱼...\n")
# __init__()方法 创建对象的时候,会自动调用
# 举例说明-是否自动调用__init__()方法的几种场景
"""
自动调用__init__():
(1)Cat() 原因:这是创建对象
(2)tom = Cat
t = tom() 原因:此时tom也是一个类,可以操作Cat中的所有属性和方法,所以此时tom()是在创建对象
"""
"""
不自动调用__init__():
(1)Cat 原因:这不是创建对象
(2)tom = Cat 原因:不是创对象,此时tom也是个类
(3)t1 = t 原因:不是创建对象,只是引用的传递
"""
# 通过Cat类创建一个对象
# 如果 属性是会变化的,则可以将这个属性的值作为参数传递,在创建对象的时候,必须传递实参值。
blue_cat = Cat('蓝猫')
blue_cat.eat()
# 通过tom类创建一个对象
tom = Cat
t = tom('黏黏')
t.eat()