【无标题】

面向对象基础

1类和对象关系:用类去创建一个对象(用一个对象去实例一个类)
2类作用:用来创造对象的(造洗衣机的图纸)
3定义类类名:大驼峰命名规则(首字母都大写)
创建对象语法
对象名 = 类名()
创建类语法

class 类名():
       代码
       ...

打印成果语法
实例方法、对象方法--haier.wash(def的函数)
6应用:
需求:洗衣机 功能:能洗衣服
1)定义洗衣机类
语法:class 类名():
代码

class Washer():
    def wash(self):
        print("能洗衣服")

2)创建对象
#对象名 = 类名()

haier = Washer()
3)验证成果
打印海尔对象
print(haier)
使用wash功能–实例方法、对象方法–haier.wash
haier.wash()
7self:指调用该函数的对象
8类外面添加对象属性
语法:对象名.属性名 = 值
haier.width = 500(洗衣机宽为500)
9在类外面获取属性
语法:对象名.属性名
print(f'洗衣机宽度是{haier1.width}')
10在类里面获取对象属性
语法:self.属性名
2应用:
#1定义类
class 类名():
代码

class Washer():
    def wash(self):
       print('能洗衣服')

#2创建对象
对象名 = 类名()
haier1 = Washer()
#3添加实例属性
语法:对象名.属性名 = 值

        haier1.width = 500
        haier1.height = 800

11魔法方法:有具体特殊功能的函数

1__init__()作用:初始化对象

1定义类
class Washer():

#2定义__init__,添加实例属性(初始化)
添加实例属性

def __init__(self):
      self.width = 500
      self.hight = 800

类里面调用实例属性

def print_info(self):
    print(f'洗衣机的宽度是{self.width},高度是{self.height}')

#3创建对象
对象名 = 类名()
haier = Washer()
#4调用
实例方法、对象方法–haier.wash
haier.print_info()

2带参数的__init__()**

    #1定义类 带参数的init:宽度和高度 实例方法:调用实例属性

class Washer():
#2定义带参数的init

def__init__(self,width,heith):
     self.width = width
     self.height = height

#3定义实例方法

def print_info(self):
       print(f'洗衣机的宽度是{self,width},洗衣机的高度是{self,height}')

#4创建对象:创建多个对象且属性值不同:调用实例方法

haier1 = Washer(10,20)
haier1.print_info()
haier2 = Waher(100,200)
haier2.print_info()

3__str__()

1str作用:会打印这个方法中return的值

class Washer():
        def __init__(self):
            self.width = 300
    haier = Washer()
    print(haier)

会输出一些内存

    class Washer():
        def __str__(self):
            return'解释说明:类的说明或对象状态的说明'
    haier = Washer()
    print(haier)

4__del__()

    1del作用:删除对象
class Waster():
    def __init__(self):
        self.width = 300
    def __del__(self)
        print('对象已被删除')
    haior = Washer()
#对象已被删除

20应用(烤地瓜)
1需求:1被烤时间和地瓜状态
0-3分钟:生
3-5分钟:半生不熟
5-8分钟:熟了
超过8分钟:糊了
2添加调料
1定义类:初始化属性,被烤时间和加调料方法,显示对象信息的str

 class SweetPotato():
     def __init__(self):
     #烤的时间
     	self.cook_time = 0
     #烤的状态
     	self.cook_state = '生的'
     #调料列表
     	self.condiment = []
     定义考的时间
     def cook(self,time):
         #1计算烤地瓜时间
     self.cook_time +=time
         #2用整体烤的时间来判断地瓜状态
     if 0 <= self.cook_time <3:
         #生的
         self.cook_state = '生的'
     elif 3 <= self.cook_time <5:
         #半生不熟
         self.cook_state = '半身不熟'
     elif 5<= self.cook_time <8:
         self.cook_state = '熟了'
     elif 8 < self.cook_time:
         self.cook_state = '烤糊了'
     #加入的调料
     def add_condiments(self,condiment):
         self.condiments.append(condiment)
     #输出烤的状态
     def __str__(self):
         return f'这个地瓜被烤过的时间{self.cook_time},状态是{self.cook_state}'
     #2创建对象并调用对应实例方法
     digual1 = SweetPotato()
     print(digual1)
     digual1.cook(2)
     digual1.add_condiments('辣椒面儿')
     print(digual1)
     digual1.cook(2)
     digual1.add_condiments('酱油')
     print(digual1)

21应用(搬家具)
1需求:将小于房子剩余面积家具搬到房子里
2步骤:
1定义类:房子类和家具类
房子类:1实例属性:
房子地理位置,房子占地面积,房子剩余面积,房子家具列表
2实例方法:容纳家具
3显示房子信息
家具类:1家具名称
2家具占地面积

        class Furniture():
            def __init__(self,name,area):
                #家具名字
                self.name = name
                #家具占地面积
                self.area = area

__init__定义具体的对象属性:self.性质=具体的东西
__init__定义待定的对象属性:self.性质=随便叫一个名字

        class House():
            **为什么不定义free_area这个形参:因为free_area和area有联系**
            def __init__(self,address,area):
                self.address = address
                self.area = area
                self.free_area = area
                self.furniture = []
            def __str__(self):
                return (f'房子坐落于{self.address},占地面积{self.area},
                剩余面积{self.free_area},家具有{self.funiture}')
            def add_furniture(self,item):
                #如果家具面积<=房子剩余面积:可以搬入(家具列表添加家具名字
                并更新房子剩余面积)
                #剩余面积 - 该家具占地面积
                #否则无法容纳
                if self.free_area >=item.area:
                    self.furniture.append(item.name)
                    #剩余面积=以前剩余面积-该家具面积
                    self.free_area-=item.area
                else:
                    print('家具太大,剩余空间不足')

2创建对象
**有带参数的创建对象就是对象名=类名()括号里面添具体参数

        bed = Furniture('双人床',6)
        sofa = Furniture('沙发',10)
        jia1 = House('北京',1000)

3验证成果:实例方法、对象方法–haier.wash

        jia1.add_furniture(bed)
        print(jia1)
        ball = Furniture('篮球场',2000)
        jia1.add_funiture(ball)
        print(jia1)

22总结

    class 类名():
        代码

对象

    对象名 = 类名()

添加对象属性

类外面

        对象名.属性名 = 值

类里面

        self.属性名 = 值

获取对象属性

类外面

        对象名.属性名

类里面

        self.属性名

魔法名字

    1__init__():初始化
    2__str__():输出对象信息
    3__del__():删除对象时 调用
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值