文章目录
07-面向对象\01-面向对象基础.pdf
1. 定义类
class Washer():
def wash(self):
print('我会洗衣服')
print(self)
2. 创建对象
对象名 = 类名()
1. 实际的例子
class Washer():
def wash(self):
print('我会洗衣服')
haier = Washer()
print(haier)
haier.wash()
输出:
<__main__.Washer object at 0x000002076E0C1FD0>
我会洗⾐衣服
3. self-调用该函数的对象本身
self指的是调用该函数的对象。
class Washer():
def wash(self):
print('我会洗衣服')
print(self)
haier = Washer()
print(haier)
haier.wash()
输出:
<__main__.Washer object at 0x000001C91DB51FD0>
我会洗衣服
<__main__.Washer object at 0x000001C91DB51FD0>
打印对象和self得到的结果是一致的,都是当前对象的内存中存储地址。
4. 添加和获取对象属性
1. 类外面添加对象属性
1. 语法
对象名.属性名 = 值
2. 代码实例
class Washer():
def wash(self):
print('我会洗衣服')
print(self)
haier = Washer()
print(haier)
haier.wash()
haier.width = 100
haier.height = 200
print(f'haier 洗衣机的高度是{haier.height}')
print(f'haier 洗衣机的宽度是{haier.width}')
输出:
<__main__.Washer object at 0x000001DD4A8A2FD0>
我会洗衣服
<__main__.Washer object at 0x000001DD4A8A2FD0>
haier 洗衣机的高度是200
haier 洗衣机的宽度是100
2. 类的内部获取属性
1. 语法
self.属性名
2. 代码实例
# 定义类
class Washer():
def print_info(self):
# 类里面获取实例属性
print(f'haier1洗衣机的宽度是{self.width}')
print(f'haier1洗衣机的高度是{self.height}')
# 创建对象
haier1 = Washer()
# 添加实例例属性
haier1.width = 500
haier1.height = 800
haier1.print_info()
5. 魔法方法
在Python中, __xx__()
的函数叫做魔法方法,指的是具有特殊功能的函数。
1. __init__()
1. __init__() 方法的作用:
初始化对象
# 定义类
class Washer():
def __init__(self):
self.width = 300
self.height = 200
def print_info(self):
print(f'洗衣机的宽度是{self.width}, 高度是{self.height}')
# 创建对象
haier = Washer()
# 添加实例属性
haier.print_info()
输出:
洗衣机的宽度是300, 高度是200
2. __init__()
注意事项
__init__()
方法,在创建一个对象时默认被调用,不需要手动调用__init__(self)
中的self参数,不需要开发者传递, python解释器会自动把当前的对象引用传递过去。
3. 带参数的 __init__()
思考:一个类可以创建多个对象,如何对不同的对象设置不同的初始化属性呢?
答:传参数。
扫描二维码关注公众号,回复:
12960487 查看本文章
1. 代码实例
class Washer():
def __init__(self, width, height):
self.width = width
self.height = height
def print_info(self):
print(f'洗衣机的宽度是{self.width}')
print(f'洗衣机的高度是{self.height}')
haier1 = Washer(10, 20)
haier1.print_info()
haier2 = Washer(30, 40)
haier2.print_info()
输出:
洗衣机的宽度是10
洗衣机的高度是20
洗衣机的宽度是30
洗衣机的高度是40
2. __str__()
当使用print输出对象的时候,默认打印对象的内存地址。如果类定义了 __str__
方法,那么就会打印从在这个方法中 return 的数据。
1. 代码实例
class Washer():
def __init__(self, width, height):
self.width = width
self.height = height
def __str__(self):
return '这是海尔洗衣机的说明书'
haier1 = Washer(10, 20)
# 这是海尔洗衣机的说明书
print(haier1)
输出:
这是海尔洗衣机的说明书
3. __del__()
当删除对象时, python解释器也会默认调用 __del__()
方法。
1. 代码实例
class Washer():
def __init__(self, width, height):
self.width = width
self.height = height
def __del__(self):
print(f'{self}对象已经被删除')
haier1 = Washer(10, 20)
# <__main__.Washer object at 0x0000026118223278>对象已经被删除
del haier1
输出:
<__main__.Washer object at 0x0000022F8FBC1FD0>对象已经被删除