面向对象:就是将编程当成一个事物,对外界来说事物就是直接使用的,不管它内部的情况,而编程就是设置事物能够去做什么事情。
类的书写格式:
class 类名():
代码.....
()内填写要继承的类名
对象(实例)的书写格式:
对象名=类名() #()内填写参数
实例方法调用:
对象名.方法名()
self:调用该函数的对象
一个类创建多个对象:
一个类创建多个对象,多个对象都调用函数,self地址不相同。
class washer():
def wash(self):
print("洗衣服")
print(self)
#第二步:创建对象
#对象名=类名()
haier1=washer()
haier2=washer()
#第三步:验证结果
#打印海尔对象
print(haier1)
print(haier2)
#使用Wash功能
haier1.wash()
haier2.wash()
类外添加属性对象
属性:添加,获取的方法
格式:对象名.属性名=值
类外获取对象属性:对象名.属性名
#添加对象属性
haier1.width=10
haier1.height=20
#获取对象属性
print(haier1.width)
print(haier1.height)
类里面获取对象属性的方法格式:self.属性名
class washer():
def wash(self):
print("洗衣服")
print(self)
def print_info(self):
print(self.width)
print(self.height)
#第二步:创建对象
#对象名=类名()
haier1=washer()
haier2=washer()
haier1.width=101
haier1.height=202
#获取对象属性
haier1.print_info()
魔法方法:指具有特殊功能函数
(1):__init__:初始化属性
class Washer():
def __init__(self):
self.width=110
self.height=220
def print_info(self):
print(self.width)
print(self.height)
haier1=Washer()
haier1.print_info()
带参数的init()方法:
class Washer():
def __init__(self,width,height):
self.width=width
self.height=height
def print_info(self):
print(self.width)
print(self.height)
haier1=Washer(6,8)
haier1.print_info()
(2)__str__()方法的作用:打印对象时输出为内存地址,此方法可避免打印无用的内存地址,而是返回此方法中return中的内容,一般都是一些解释说明的内容。
class Washer():
def __init__(self,width,height):
self.width=width
self.height=height
def __str__(self):
return "这是说明书"
# def print_info(self):
# print(self.width)
# print(self.height)
haier1=Washer(6,8)
print(haier1) #无此方法时,打印结果为内存地址,有此方法时,打印结果为return后的内容
(3)__del__():当删除对象时,解释器默认调用del方法,程序自上而下进行执行,当执行完后自动结束运行,内存删除类,变量等,内存自动删除释放,del方法自动被调用。
综合案例:搬家具需求主线:将小于房子剩余面积的家具摆放到房子中
步骤分析:
1.家具类:
实例属性:家具名称,家具面积
2.房子类:
实例属性:房子位置,房子面积,剩余房子面积,家具列表
实例方法:
搬家具:判断家具面积是否小于房子剩余面积,进行搬家具
class Furniture():
def __init__(self,name,size):
#家具名字
self.name=name
#定义家具面积
self.size=size
#2.定义房子类
class House():
def __init__(self,address,size):
self.address=address
self.size=size
self.free_size=size
self.furniture=[]
def __str__(self):
return f'房子位置在{self.address},家具面积:{self.size},房子剩余面积:{self.free_size},家具列表:{self.furniture}'
def add_furuiture(self,item):
if self.free_size>=item.size:
self.furniture.append(item.name)
self.free_size-=item.size
else:
print("家具太大,放不下")
f1=Furniture("沙发",20)
h1=House('北京',120)
h1.add_furuiture(f1)
print(h1)
总结:拿到需求先进行分析,分析类->类的属性->属性的初始值->定义方法,分析完整后在进行写代码,把大需求划分为多个子需求,进行实现。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)