Python 面向对象 - 02 基础语法
2019-03-02 本文已影响0人
flowerflower
😝😝.jpg
2.6
2.7
目录
一、 dir 内置函数
二、类的语法
2.1 类的语法格式
2.2 创建对象
2.3 初始化方法
2.4 在初始化方法内部定义属性
2.5 自定义初始化方法
2.6__del__
方法
2.7__str__
方法
一、 dir 内置函数
提示 __方法名__
格式的方法是 Python
提供的 内置方法 / 属性,稍后会给大家介绍一些常用的内置方法 / 属性
方法名 | 作用 |
---|---|
__new__ |
创建对象时,会被 自动 调用 |
__init__ |
对象被初始化时,会被 自动 调用 |
__del__ |
对象被从内存中销毁前,会被 自动 调用 |
__str__ |
返回对象的描述信息,print 函数输出使用 |
二、类的语法
2.1 类的语法格式
class 类名:
def 方法1(self, 参数列表):
# pass表示占位符 保证程序的代码结构正确 pass关键字不会执行任何操作
pass
def 方法2(self, 参数列表):
pass
注意:
类名的命名规则要符合大驼峰命名法
2.2 创建对象
- 当一个类定义完成之后,要使用这个类来创建对象,语法格式如下:
对象变量 = 类名()
2.3 初始化方法
- 当使用
类名()
创建对象时,会 自动 执行以下操作:- 为对象在内存中 分配空间 —— 创建对象
- 为对象的属性 设置初始值 —— 初始化方法(
init
)
- 这个 初始化方法 就是
__init__
方法,__init__
是对象的*内置方法
__init__
方法是 专门 用来定义一个类 具有哪些属性的方法!
class Chicken:
def __init__(self):
print("这是一个初始化方法")
def eat(self):
print("%s爱吃肉" % (self.name))
# 使用类名()创建对象的时候,会自动调用初始化方法 __init__
cock = Chicken()
2.4 在初始化方法内部定义属性
- 在
__init__
方法内部使用self.属性名 = 属性的初始值
就可以 定义属性 - 定义属性之后,再使用
Chicken
类创建的对象,都会拥有该属性
class Chicken:
def __init__(self):
# 定义用 Chicken 类创建的猫对象都有一个 name 的属性
self.name = "大公鸡"
def eat(self):
print("%s爱吃肉" % (self.name))
cock = Chicken("公鸡")
cock.eat()
2.5 自定义初始化方法
- 在开发中,如果希望在 创建对象的同时,就设置对象的属性,可以对
__init__
方法进行 自定义- 把希望设置的属性值,定义成
__init__
方法的参数 - 在方法内部使用
self.属性 = 形参
接收外部传递的参数 - 在创建对象时,使用
类名(属性1, 属性2...)
调用
- 把希望设置的属性值,定义成
class Chicken:
def __init__(self,name):
self.name = name
def eat(self):
print("%s爱吃肉" % (self.name))
cock = Chicken("公鸡")
cock.eat()
hen = Chicken("母鸡")
hen.eat()
案例小结
由 哪一个对象 调用的方法,方法内的 self
就是 哪一个对象的引用
2.6 __del__
方法
-
在
Python
中- 当使用
类名()
创建对象时,为对象 分配完空间后,自动 调用__init__
方法 - 当一个 对象被从内存中销毁 前,会 自动 调用
__del__
方法
- 当使用
-
应用场景
-
__init__
改造初始化方法,可以让创建对象更加灵活 -
__del__
如果希望在对象被销毁前,再做一些事情,可以考虑一下__del__
方法
-
-
生命周期
- 一个对象从调用
类名()
创建,生命周期开始 - 一个对象的
__del__
方法一旦被调用,生命周期结束 - 在对象的生命周期内,可以访问对象属性,或者让对象调用方法
- 一个对象从调用
# 定义类和方法
class Dog:
# 自定义初始化方法
def __init__(self,name):
self.name = name
def eat(self):
print("%s在吃东西" %(self.name))
def __del__(self):
print("del")
# 创建对象
dog = Dog("大灰灰")
dog.eat()
print(dog)
# del 关键字可以删除一个对象
del dog
2.7 __str__
方法
- 在
Python
中,使用print
输出 对象变量,默认情况下,会输出这个变量 引用的对象 是 由哪一个类创建的对象,以及 在内存中的地址(十六进制表示) - 如果在开发中,希望使用
print
输出 对象变量 时,能够打印 自定义的内容,就可以利用__str__
这个内置方法了
# 定义类和方法
class Dog:
# 自定义初始化方法
def __init__(self,name):
self.name = name
def eat(self):
print("%s在吃东西" %(self.name))
def __str__(self):
# 必须返回字符串
return "我是:%s" % self.name
# 创建对象
dog = Dog("大灰灰")
dog.eat()
print(dog)