|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
听了小甲鱼的课程后,大概对类中self的绑定作用有了一定了解。可是还是有一点困惑。我对self 的作用的理解是:self一个作用是用于类之间变量传递的。
比如:
class Ball:
def setName(self, name):
self.name = name
def kick(self):
print ("Hi I will %s" % self.name)
在这个类对象中,如果不用self,那么name这个变量无法传递。
class Ball1:
def setName(self, name):
name
def kick(self):
print ("Hi I will %s" % name)
在这个类中,kick无法被调用。
我的问题有二。1.如果不涉及变量在类内的传递,比如
class Ball2:
def setName(self, name):
print(name)
class Ball3:
def setName(self, name):
self.name = name
print(self.name)
那么这两个类是否完全等效,即self在这个类的实例化中没有用处?
2.若令b2 = Ball2
为什么b2这个实例对象中中,hasattr(b2, name)会显示False。即b2没有name这个属性。是因为我之前对(self.属性)这个的理解有误吗?
感谢各位大佬
1 并不等效,你可以这样理解,加了self的变量其作用域变成了整个类,所以可以在其他函数中直接使用该变量
2 正是加了self才表明这是这个类成员的一个属性,否则只是一个局部变量
|
|