对象和类的区别:
对象是特指的某个事物或者某件特指的事情,他是具体的
类是指的大概形象,他是粗略的
所以根本的区别就是一个是精细的,一个是粗放的
类的三个组成部分:
1、有一个特指的名称
2、有一组数据形容他
3、允许对其进行操作的。
特别注意的是如果进行多重调用,一定要注意使用self进行调用,这样就会智能识别需要调用的内容,例子:
#name:leon class 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 = 10 print(tom) lanmao = Cat("蓝猫",10) lanmao.eat() lanmao.drink() # lanmao.name = "蓝猫" # lanmao.age = 20 print(lanmao)'''可以得到新的结果是:猫在吃鱼 猫在喝水 汤姆的年龄是40 猫在吃鱼 猫在喝水 蓝猫的年龄是10'''方法虽然不同,但是效果相同
但是有一个地方需要注意,就是局部变量的数据不能作用于全局,但是为什么用__init__的方法
修改了数据之后,可以调用__str__的方法调用呢?其实原因很简单,就是因为python的指向性
新的代码指向了__init__生成的值