|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
class Ball():
def Setname(self,name):
return name
def kick(self):
print('我叫%s,该死的,谁踢我'%self.name)
class Ball():
self.name='小甲鱼'
def kick(self):
print('我叫%s,该死的,谁踢我'%self.name)
为什么这两个会报错?关于self还是不太懂
本帖最后由 Twilight6 于 2020-6-11 11:57 编辑
第一个代码:
你参数传入的 name 变量是局部变量,你要通过赋值给 self.name 才能在其他方法内使用:
- class Ball():
- def Setname(self, name):
- self.name = name
- return self.name
- def kick(self):
- print('我叫%s,该死的,谁踢我' % self.name)
复制代码
第二个代码:
带self的属性 是实例属性,要在方法内,不能写在方法外,方法外写的是 类属性,而不是实例属性
- class Ball():
- name = '小甲鱼' # 属于类属性
- def kick(self):
- print('我叫%s,该死的,谁踢我' % Ball.name) # 这边的Ball.name 就是调用Ball内的类属性
复制代码
self 简单的理解就是被实例的对象,举个例子当你写了一个类 比如 A 类 你实例化 A类:
这个时候 a 就代表 方法里面的 self 参数,你当你调用这个实例化对象的属性 a.name 也就是 self.name 此时的 self = a
分享下我当时网上整理的笔记:
类、实例、局部变量
|
|