python_面向对象(一)

来源:互联网 发布:java processbuilder 编辑:程序博客网 时间:2024/06/07 14:34

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.colorprint(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.colorwangcai = 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)
原创粉丝点击