Python面向对象编程

Python面向对象编程,第1张

面向对象:就是将编程当成一个事物,对外界来说事物就是直接使用的,不管它内部的情况,而编程就是设置事物能够去做什么事情。

类的书写格式:

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)

总结:拿到需求先进行分析,分析类->类的属性->属性的初始值->定义方法,分析完整后在进行写代码,把大需求划分为多个子需求,进行实现。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/794119.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-06
下一篇 2022-05-06

发表评论

登录后才能评论

评论列表(0条)

保存