注意:看完整代码可以翻到最后,本节内容是衔接上节 python入门笔记——面向对象基础1_2
初始化方法
①.在类的外部给类增加属性的隐患
在开发中并不推荐在类的外部增加属性。
②.python中初始化方法
当使用类名()创建对象时, 会自动执行以下操作:
- 为对象在内存中 分配空间 -- 创建对象
- 为对象的属性 设置初始值 --初始化方法(init)
这个初始化方法就是 __init__ 方法, __init__是对象的内置方法
__init__ 方法是专门 用来定义一个类 具有哪些属性的方法!
③.在初始化方法中定义一个属性:
操作:使用self.属性名 = 属性的初始值 就可以 定义属性
定义属性之后,在使用Cat类创建的对象, 都会拥有该属性
self 改进“小猫爱吃鱼”---“tom 爱吃鱼”
④.使用参数设置属性初始值:
描述:初始化属性时,不希望把属性固定死(比如每次调用创建cat类时名字都叫汤姆,这不是我们希望看到的),所以我们需要传递一个形参, 同时self.name = 形参名字
在开发中,如果希望在创建对象的同时,就设置对象的属性,可以对__init__方法进行改造
- 把希望设置的属性值,定义为__init__方法的参数
- 在方法内部使用self.属性=形参接受外部传递的参数
- 在创建对象时,使用类名(属性1,属性2...)调用
完整代码如下:
class Cat:
def __init__(self, new_name):
#print("这是一个初始化方法")
# self.属性名 = 属性的初始值
self.name = new_name
def eat(self):
print("%s爱吃鱼" %self.name)
# 创建对象1__tom
tom = Cat("Tom")
print(tom.name)
print(tom.eat())
# 创建对象2__Persian cat
Persian = Cat("波斯猫")
print(Persian.name)
Persian.eat()