12月15日学习笔记—面向对象

来源:互联网 发布:可惜没如果知乎 编辑:程序博客网 时间:2024/06/07 19:33

对象和类的区别:

对象是特指的某个事物或者某件特指的事情,他是具体的

类是指的大概形象,他是粗略的

所以根本的区别就是一个是精细的,一个是粗放的

类的三个组成部分:

1、有一个特指的名称

2、有一组数据形容他

3、允许对其进行操作的。

特别注意的是如果进行多重调用,一定要注意使用self进行调用,这样就会智能识别需要调用的内容,例子:

#name:leonclass Cat():    def eat(self):        print("猫在吃鱼")    def drink(self):        print("猫在喝水")    def indexing(self):        print("%s今年已经有%s" % (self.name, self.age))Tom = Cat()Tom.eat()Tom.drink()Tom.name ="汤姆"Tom.age = '40'Tom.indexing()lanmao = Cat()lanmao.eat()lanmao.drink()lanmao.name ="蓝猫"lanmao.age = '10'lanmao.indexing()'''调用结果如下:猫在吃鱼猫在喝水汤姆今年已经有40岁了猫在吃鱼猫在喝水蓝猫今年已经有10岁了'''
进一步改变该代码,可得到新的代码:
class Cat:    def __init__(self,new_name,new_age):        self.name = new_name        self.age = new_age    def __str__(self):        return "%s的年龄是%s"%(self.name,self.age)    def eat(self):        print("猫在吃鱼")    def drink(self):        print("猫在喝水")    def introduce(self):        print("%s的年龄是%s"%(self.name,self.age))tom = Cat("汤姆",40)tom.eat()tom.drink()# tom.name="汤姆"# tom.age = 10print(tom)lanmao = Cat("蓝猫",10)lanmao.eat()lanmao.drink()# lanmao.name = "蓝猫"# lanmao.age = 20print(lanmao)
'''可以得到新的结果是:
猫在吃鱼猫在喝水汤姆的年龄是40猫在吃鱼猫在喝水蓝猫的年龄是10'''
方法虽然不同,但是效果相同
但是有一个地方需要注意,就是局部变量的数据不能作用于全局,但是为什么用__init__的方法
修改了数据之后,可以调用__str__的方法调用呢?其实原因很简单,就是因为python的指向性
新的代码指向了__init__生成的值


原创粉丝点击