面向对象基础
-
类与对象的关系:用类去创建一个对象
注意:先有类,后有对象 -
面向对象实现方法
2.1 定义类
(1)语法:
2.2 创建对象
(1)语法:
# 定义类
class washer():
def wash(self): #self指的是调用该函数的对象(haier)
print('可以洗衣服')
# 创建对象
haier=washer()
# 验证成果
print(haier)
# <__main__.washer object at 0x000001B3A57A0A08>
#实例方法/对象方法
haier.wash()
# 可以洗衣服
(2)一个类可以创建多个对象,多个对象调用函数时,self地址不相同
class Washer():
def wash(self):
print('洗衣服')
print(self)
haier1=Washer()
# print(haier1) 与类中的print(self)一样
haier1.wash()
haier2=Washer()
haier2.wash()
3. 添加和获取属性
3.1 类外面添加对象属性
(1)语法:
3.2 类外面获取对象属性
(1)语法:
# 定义类
class Washer():
def wash(self):
print('洗衣服')
# 创建对象
haier1=Washer()
# 类外添加属性
haier1.width=100
haier1.height=200
# 类外获取属性
print(f'洗衣机的宽度是{haier1.width}') #洗衣机的宽度是100
print(f'洗衣机的高度是{haier1.height}') #洗衣机的高度是200
3.3 类里面获取对象属性
(1)语法:
# 定义类
class Washer():
#类内获取属性
def print_info(self):
print(f'洗衣机的宽度是{self.width}') # 洗衣机的宽度是100
print(f'洗衣机的高度是{self.height}') # 洗衣机的高度是200
# 创建对象
haier1=Washer()
# 类外添加属性
haier1.width=100
haier1.height=200
# 对象调用实例方法
haier1.print_info()
- 魔法方法:
# _init_()方法的作用:初始化对象
class Washer():
def __init__(self):
self.width=100
self.height=200
def print_info(self):
print(f'洗衣机宽度是{self.width}')# 洗衣机的宽度是100
print(f'洗衣机高度是{self.height}')# 洗衣机的高度是200
haier=Washer()
# haier.__init__() # _init_()方法,在创建一个对象时默认被调用,不需要手动调用
haier.print_info()
4.1 一个类可以创建多个对象,用传参数的方法对不同的对象进行初始化
class Washer():
def __init__(self,height,width):
self.wid=width
self.hei=height
def print_info(self):
print(f'高度为{self.hei}')
print(f'宽度为{self.wid}')
haier1=Washer(100,200)
haier1.print_info() #高度为100,宽度为200
haier2=Washer(300,400)
haier2.print_info() #高度为300,宽度为400
4.2 当使用Print输出对象时,默认打印对象的内存地址,如果定义了str方法,那么就会打印return中的数据
class Washer():
def __init__(self):
self.height=100
def __str__(self):
return '解释说明'
haier=Washer()
print(haier) #解释说明
4.3 del方法,解释器自动调用
class Washer():
def __init__(self):
self.width=100
def __del__(self):
print('对象已经删除')
haier=Washer()