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

对象和类的区别:

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

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

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

类的三个组成部分:

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__生成的值


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值