Pyhton面向对象基础语法( 二 )


如果在运行时,没有找到属性,程序会报错
【Pyhton面向对象基础语法】对象应该包含有哪些属性,应该 封装在类的内部
4.2 初始化方法
当使用 类名() 创建对象时,会 自动 执行以下操作:
为对象在内存中 分配空间 —— 创建对象
为对象的属性 设置初始值 —— 初始化方法(init)
这个 初始化方法 就是 init 方法,init 是对象的内置方法
init 方法是 专门 用来定义一个类 具有哪些属性的方法!
在 Cat 中增加 init 方法,验证该方法在创建对象时会被自动调用
class Cat: """这是一个猫类""" def __init__(self): print("初始化方法")4.3 在初始化方法内部定义属性
在 init 方法内部使用 self.属性名 = 属性的初始值 就可以 定义属性
定义属性之后,再使用 Cat 类创建的对象,都会拥有该属性
class Cat: def __init__(self): print("这是一个初始化方法")# 定义用 Cat 类创建的猫对象都有一个 name 的属性 self.name = "Tom" def eat(self): print("%s 爱吃鱼" % self.name)# 使用类名()创建对象的时候,会自动调用初始化方法 __init__tom = Cat()tom.eat()4.4 改造初始化方法 —— 初始化的同时设置初始值
在开发中,如果希望在 创建对象的同时,就设置对象的属性,可以对 init 方法进行 改造
把希望设置的属性值,定义成 init 方法的参数
在方法内部使用 self.属性 = 形参 接收外部传递的参数
在创建对象时,使用 类名(属性1, 属性2…) 调用
class Cat: def __init__(self, name): print("初始化方法 %s" % name) self.name = name ... tom = Cat("Tom")...lazy_cat = Cat("大懒猫")...05. 内置方法和属性

Pyhton面向对象基础语法

文章插图
 
5.1 del 方法(知道)
在 Python 中
当使用 类名() 创建对象时,为对象 分配完空间后,自动 调用 init 方法
当一个 对象被从内存中销毁 前,会 自动 调用 del 方法
应用场景
init 改造初始化方法,可以让创建对象更加灵活
del 如果希望在对象被销毁前,再做一些事情,可以考虑一下 del 方法
生命周期
一个对象从调用 类名() 创建,生命周期开始
一个对象的 del 方法一旦被调用,生命周期结束
在对象的生命周期内,可以访问对象属性,或者让对象调用方法
class Cat:
class Cat: def __init__(self, new_name): self.name = new_name print("%s 来了" % self.name) def __del__(self): print("%s 去了" % self.name)# tom 是一个全局变量tom = Cat("Tom")print(tom.name)# del 关键字可以删除一个对象del tomprint("-" * 50)5.2 str 方法
在 Python 中,使用 print 输出 对象变量,默认情况下,会输出这个变量 引用的对象 是 由哪一个类创建的对象,以及 在内存中的地址(十六进制表示)
如果在开发中,希望使用 print 输出 对象变量 时,能够打印 自定义的内容,就可以利用 str这个内置方法了
注意:str 方法必须返回一个字符串
class Cat: def __init__(self, new_name): self.name = new_name print("%s 来了" % self.name) def __del__(self): print("%s 去了" % self.name) def __str__(self): return "我是小猫:%s" % self.nametom = Cat("Tom")print(tom)



推荐阅读