python_面向对象(一)

def 函数名():
xxxx

定义一个类的方式为:
class 类名:
xxxxx

 #定义一个猫类
class Cat:
    #属性
    #方法
    def eat(self):
        print('%s吃%s'%("-"*5,'-'*5))
    def play(self):
        print('-----玩-----')

xiaohuamao = Cat().eat()
#打印结果-----吃-----

获取对象属性

 #定义一个猫类
class Cat:
    #属性
    #方法
    def eat(self):
        print('%s吃%s'%("-"*5,'-'*5))
    def play(self):
        print('-----玩-----')
    #定义一个获取对象属性的方法
    def printattrs(self):
        #这个self有点像this 表示这个对象的属性,当在下面定义color,方法中就可以使用
        print(self.color)
xiaohuamao = Cat()
#给小花猫对象添加属性
xiaohuamao.color = '红色'
#获取小花猫的属性
a = xiaohuamao.color
print(a)#打印红色
xiaohuamao.printattrs()#打印红色

综合上面的代码的出来的结论
给一个对象添加属性方法为:
对象名.新的属性名 = 值

获取这个对象的属性,2种方法:
1. 对象.属性
2. 定义一个方法,这个方法中,使用 self.属性

初始化类init(self)

 #定义一个猫类
class Cat:
    #属性
    #初始化
    def __init__(self,color):
        print(color,"初始化")
Cat('红色')#打印出来的结果是红色 初始化
 #定义一个猫类
class Cat:
    #属性
    #初始化
    def __init__(self,newcolor):
        #这个对象color属性赋值
        self.color=newcolor
        print(newcolor,"初始化")
    #方法
    def eat(self):
        print('%s吃%s'%("-"*5,'-'*5))
    def play(self):
        print('-----玩-----')
    #定义一个获取对象属性的方法
    def printattrs(self):
        #
        print(self.color)

#这样生成的是这个类的属性,当对象调用时,因为代码块最先生成,可以声明这个对象的属性
xiaohuamao = Cat("红色")

xiaohuamao.printattrs()#打印结果红色

init()方法
1. 是python自动调用的方法,调用的时间为:创建完对象之后,立马自动调用
2. 不需要开发者调用,即 对象名.init()
3. 这个方法一般情况下会完成一些默认的事情,比如添加一些属性

class Xxxx:
            def __init__(self, new_a, new_b):
                self.a = new_a
                self.b = new_b
注意:new_a、new_b 是局部变量,并不是对象的属性,如果想在__init__方法中添加属性的话,需要使用类似
    self.属性名 = 值
    的格式,此时self.a = new_a表示的是给对象添加一个属性,这个属性名为a,这个属性的值为局部变量new_a里面的值

_ str _

 #定义一个猫类
class Cat:
    def __init__(self,newcolor):
        self.color = newcolor
    #让对象接受返回值
    def __str__(self):
        return self.color


wangcai = Cat('黑')
#如果没有str返回应该是内存地址,用了str方法打印结果黑
print (wangcai)

面向对象烤地瓜

class sweetPotato:
    def __init__(self):
        #属性初始化赋值
        self.cookedaLevel = 0
        self.cookedString = '生的'
        self.condiments = []
    #烤的时间
    def cook(self,times):
        self.cookedaLevel += times
        if self.cookedaLevel > 8:
            self.cookedString = '木炭'
        elif self.cookedaLevel > 5:
            self.cookedString = "烤好了"
        elif self.cookedaLevel > 3:
            self.cookedString = '半生不熟'
        else:
            self.cookedString = '生的'
     #添加作料
    def addCondiments(self,temp):
        self.condiments.append(temp)
    #对象返回值
    def __str__(self):
        str_cond=''
        for temp in self.condiments:
            str_cond +=temp+','
            #用切片去逗号
        return '地瓜的生熟度'+self.cookedString+'等级'+str(self.cookedaLevel)+str_cond[:-1]

print('准备烤地瓜了')
diGua = sweetPotato()
diGua.cook(1)
diGua.addCondiments("芥末")
diGua.addCondiments("芥末")
diGua.addCondiments("芥末")
print(diGua)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值