python self 用法_Python中关于‘self’的种种用法笔记

方法中的 self 参数

给对象增加属性

先来看个例子:

class Cat:

def eat(self):

print("%s 爱吃鱼" % self.name)

在 Python 中,要 给对象设置属性,非常的容易,但是不推荐使用

tom.name = "Tom"

lazy_cat.name = "大懒猫"

因为:对象属性的封装应该封装在类的内部 只需要在 类的外部的代码 中直接通过 . 设置一个属性即可

注意:这种方式虽然简单,但是不推荐使用!

使用 self 在方法内部输出每一只猫的名字 由 哪一个对象 调用的方法,方法内的 self 就是 哪一个对象的引用 在类封装的方法内部,self 就表示 当前调用方法的对象自己 调用方法时,程序员不需要传递 self 参数 在方法内部 可以通过 self. 访问对象的属性 也可以通过 self. 调用其他的对象方法

改造代码如下:

class Cat:

def eat(self):

print("%s 爱吃鱼" % self.name)

tom = Cat()

# tom.eat()

# 给对象临时增加属性

tom.name = "Tom"

# 现在调用就没问题

tom.eat()

lazy_cat = Cat()

lazy_cat.name = "大懒猫"

lazy_cat.eat()

运行结果如下:

“”"

Tom 爱吃鱼

大懒猫 爱吃鱼

“”"

在 类的外部,通过 变量名. 访问对象的 属性和方法

在 类封装的方法中,通过 self. 访问对象的 属性和方法

在类的外部给对象增加属性

将案例代码进行调整,先调用方法 再设置属性,观察一下执行效果

python tom = Cat()

tom.drink()

tom.eat()

tom.name = "Tom"

print(tom)

# 程序执行报错如下:

# AttributeError: 'Cat' object has no attribute 'name' 属性错误:'Cat' 对象没有 'name' 属性

提示

在日常开发中,不推荐在 类的外部 给对象增加属性

如果在运行时,没有找到属性,程序会报错

对象应该包含有哪些属性,应该 封装在类的内部

未完待续

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值