python中self意思_Python语言中self参数应该如何理解

为什么要给每个方法都加入 self 作为参数?

class myClass:

def myFunc(self, name):

self.name = name

求解释!

class myClass(object):

def myFunc(self, name):

self.name = name

a = myClass()

a.myFunc('yetone')

就相当于:class myClass(object):

pass

func myFunc(self, name):

self.name = name

a = myClass()

myFunc(a, 'yetone')

现在明白 self 的意思了吧,self 就是指调用者本身。当实例对象 foo 调用其 bar 方法时:foo.bar() 在底层就是把 foo 作为函数 bar 的第一个参数进行调用而已。

至于为什么参数名非要叫 self,这只是一个推荐的规范而已。你可以起任何变量名。class OtherClass:

def otherFunc(other, name):

other.name = name

你想这样写也没问题呀,你开心就好 :)

python引用成员变量的方式,例如:obj.method(),obj使用了self参数来传递到method内部,method内部通过self来使用obj的成员。

面向对象中静态方法与实例方法的区别,不加self声明方法为当前类的静态成员,使用myClass.myFun()调用,如果添加self则定义为类实例成员,这样调用c = myClass()

c.myFun()

从执行角度来讲,都能调用,但要更符合面向对象原则,则建议区分开,更进一步讲,如果某个行为与具体的实例关系不大时比如数据访问工具类的方法,则可以不加self定义为类成员,如果以多态的角度出发该行为与实例关系更紧密时,则需要加self

玩蛇网文章,转载请注明出处和文章网址:https://www.iplaypy.com/wenda/wd19335.html

相关文章 Recommend

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值