qiaoliang0302

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

 

 

class Cat:                   #类名用大驼峰
    """定义了一个Cat类"""
    #属性
    #方法
    def eat(self):
        print("猫在吃鱼")
    def drink(self):
        print("猫在喝水")
    def introduce(self):
        #print("%s的年龄是%s"%(tom.name,tom.age))
        print("%s的年龄是%s"%(self.name,self.age))
#创建一个对象
tom = Cat()
tom.eat()
tom.drink()
#给tom的对象添加两个属性
tom.name = "汤姆"              
tom.age = 18
lanmao = Cat()
lanmao.name = "蓝猫"
lanmao.age = 20
lanmao.introduce()

 

 

class Cat:                   #类名用大驼峰
    """定义了一个Cat类"""
    #属性
    def __init__(self,new_name,new_age):        #初始化对象, 创建对象后自动调用,返回创建对象的引用。称为魔法方法
        self.name = new_name
        self.age = new_age
    def __str__(self):
        return "%s的年龄是%d"%(self.name,self.age)
    #方法
    def eat(self):
        print("猫在吃鱼")
    def drink(self):
        print("猫在喝水")
    def introduce(self):
        #print("%s的年龄是%s"%(tom.name,tom.age))
        print("%s的年龄是%s"%(self.name,self.age))
#创建一个对象
tom = Cat("汤姆",18)
tom.eat()
tom.drink()
#给tom的对象添加两个属性
#tom.name = "汤姆"              
#tom.age = 18
lanmao = Cat("蓝猫",20)
#lanmao.name = "蓝猫"
#lanmao.age = 20
lanmao.introduce()
print(tom)                # 没有__str__()的时候打印的是引用地址,有,打印str的返回值
print(lanmao)

 

class SweetPotato:
    def __init__(self):
        self.cookedString = "生的"
        self.cookedLevel = 0
        self.condiments = []
    def __str__(self):
        return "地瓜 状态:%s(%d),添加的佐料有:%s"%(self.cookedString,self.cookedLevel,str(self.condiments))
    def cook(self,cook_time):
        self.cookedLevel += cook_time
        if self.cookedLevel >= 0 and self.cookedLevel<3:
            self.cookedString = "生的"
        elif self.cookedLevel >=3 and self.cookedLevel<5:
            self.cookedString = "半生不熟"
        elif self.cookedLevel >=5 and self.cookedLevel<8:
            self.cookedString = "熟了"
        elif self.cookedLevel>8:
            self.cookedString = "考糊了"
    def addCondeiments(self,item):
        self.condiments.append(item)
# 创建一个地瓜对象
di_gua = SweetPotato()
print(di_gua)
#开始烤地瓜
di_gua.cook(1)
print(di_gua)
di_gua.cook(1)
print(di_gua)
di_gua.addCondeiments("大蒜")
di_gua.cook(1)
print(di_gua)
di_gua.cook(1)
di_gua.addCondeiments("番茄酱")
print(di_gua)
di_gua.cook(1)
print(di_gua)
di_gua.cook(1)
di_gua.addCondeiments("孜然")
print(di_gua)
di_gua.cook(1)
print(di_gua)
di_gua.addCondeiments("芥末")
di_gua.cook(1)
print(di_gua)
di_gua.cook(1)
print(di_gua)


地瓜 状态:生的(0),添加的佐料有:[]
地瓜 状态:生的(1),添加的佐料有:[]
地瓜 状态:生的(2),添加的佐料有:[]
地瓜 状态:半生不熟(3),添加的佐料有:['大蒜']
地瓜 状态:半生不熟(4),添加的佐料有:['大蒜', '番茄酱']
地瓜 状态:熟了(5),添加的佐料有:['大蒜', '番茄酱']
地瓜 状态:熟了(6),添加的佐料有:['大蒜', '番茄酱', '孜然']
地瓜 状态:熟了(7),添加的佐料有:['大蒜', '番茄酱', '孜然']
地瓜 状态:熟了(8),添加的佐料有:['大蒜', '番茄酱', '孜然', '芥末']
地瓜 状态:考糊了(9),添加的佐料有:['大蒜', '番茄酱', '孜然', '芥末']

 

 

class Home:
    def __init__(self,new_area,new_info,new_addr):
        self.area = new_area
        self.info = new_info
        self.addr = new_addr
        self.left_area = new_area
        self.contain_items = []
    def __str__(self):
        msg = "房子的面积是:%d,可用面积是:%d,户型是:%s,地址是:%s"%(self.area,self.left_area,self.info,self.addr)
        msg +="房子的物品有:%s"%self.contain_items
        return msg
    def add_item(self,item):
        #self.left_area -= item.area
        #self.contain_items.append(item.name)
        self.left_area -= item.get_area()
        self.contain_items.append(item.get_name())

class Bed:
    def __init__(self,new_name,new_area):
        self.name = new_name
        self.area = new_area
    def __str__(self):
        return "%s的面积是%d"%(self.name,self.area)
    def get_area(self):
        return self.area
    def get_name(self):
        return self.name
fangzi = Home(129,"三室一厅","北京市 朝阳区 长安街 666号")
print(fangzi)

bed1 = Bed("席梦思",4)
print(bed1)

fangzi.add_item(bed1)
print(fangzi)


房子的面积是:129,可用面积是:129,户型是:三室一厅,地址是:北京市 朝阳区 长安街 666号房子的物品有:[]
席梦思的面积是4
房子的面积是:129,可用面积是:125,户型是:三室一厅,地址是:北京市 朝阳区 长安街 666号房子的物品有:['席梦思']

 

 

class Dog:
    def __init__(self,new_name):
        self.name = new_name
        self.__age = 0    # 定义了一个私有属性,属性的名字是__age
    def set_age(self,new_age):
        if new_age>0 and new_age<=100:
            self.__age = new_age
        else:
            self.__age = 0
    def get_age(self):
        return self.__age

dog = Dog("小白")
dog.set_age(-30)
print(dog.get_age())

 

 

class Dog:
    def __send_msg(self):
        print("正在发送短信")

    def send_msg(self,new_money):
        if new_money>10000:
            self.__send_msg()
        else:
            print("余额不足,请先充值 再发送短信")

dog = Dog()
dog.send_msg(300000)

 

 

class Dog:
    def __del__(self):
        print("----over----")

dog1 = Dog()
dog2 = dog1
del dog1
del dog2         # 执行完后,引用计数为0,调用 __del__()
print("==================")

 

 

import sys

class T:

    pass

t = T()

sys.getrefcount(t)           #   测量引用计数,值为2,因为本身调用要产生1个

tt =t

sys.getrefcount(t)        #值变为3

 

posted on 2019-07-31 19:54  qiaoliang0302  阅读(131)  评论(0编辑  收藏  举报