Python中的self

学习Python时对self不是太理解,参考一些资料做一下记录

class Person():
	def  SetName(self,name):
		self.name = name
		self.inputname = name
		input1 = name
	def GetName(self):
		return self.name
	def Greet(self):
		print('hello world! I'm %s'.%self.name)

在这里,我们对比下,self.inputname变量和input1变量,都赋值为name,有什么区别呢?

首先,self改变了变量的作用域,不加self的变量是局部变量,作用域是当前函数;加了self的变量是实例变量,作用域是当前实例。也就是说,我们在外部将Person实例化时,可以调用它的inputname变量,因为这个变量为实例变量,作用域为整个实例,但是不可以调用input1变量,因为这个是局部变量,作用域 仅为当前函数,只能在SetNanme中使用。

self指当前实例本身
如,我们实例化 Lemon = Person(),我们得到Person()类的一个实例,那就是Lemon。当我们要调用Lemon的Setname和GetName方法时,Lemon会自动将自己作为第一个参数传进来,所以我们形象的称为self。
如果我们调用Lemon.input1则会报exception

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值