Python 类中方法的内部变量,命名加'self.'变成 self.xxx 和不加直接 xxx 的区别

先看两个类的方法:

>>> class nc():
	def __init__(self):
		self.name ='tester'  #name变量加self	
	
>>> class mc():
	def __init__(self): 
		name = 'tesster'     #name变量不加self	

>>> nc = nc()  #实例化nc()
>>> nc.name    #通过.操作符可以调用该方法的属性name,说明加self后的name是该方法的属性 attribute。
'tester'

>>> mc = mc()  #实例化mc()
>>> mc.name    #尝试通过.操作符调用变量name,明显提示错误,说明不加self的变量不是该方法的属性,它是方法的局部变量。
Traceback (most recent call last):
  File "<pyshell#33>", line 1, in <module>
    mc.name
AttributeError: 'mc' object has no attribute 'name'
python中类方法的属性需要加self,也就是self.xxx,这个是方法的属性!

类方法的变量不加self,也就是xxx,这个是方法的局部变量,不能被调用,只能在该方法内部使用!

在类中,self只能在方法中使用表示该方法的实例属性,也就是每个实例可以设置不同的值而不会相互影响;在方法下不使用self表示是该方法的局部变量,只能在该方法内使用。

self.xxx是全局的,xxx是局部的对于该方法有效。




  • 3
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值