Crossin的编程教室

标题: 第48课类的函数疑问 [打印本页]

作者: 变色幽灵    时间: 2017-12-19 22:32
标题: 第48课类的函数疑问
如图:为什么定义类的函数一定要用self.name呢?直接用函数的变量self为什么不可以
#encoding:utf-8

class MyClass:
    name = 'sam'
    def sayHi(self):
        print 'Hello %s'%self.name

mc = MyClass()
print mc.name
mc.name = 'lily'
mc.sayHi()


class myclass:
    name = 'aa'
    def say(self):
        print 'hello' + self

mm = myclass()
mm.name = 'lucy'
print mm.name
#mm.say(mm.name)
WX20171219-223017@2x.png

作者: braid    时间: 2017-12-20 09:34
self表示的是类的本身,不是同name一样是类的属性变量
作者: TED    时间: 2017-12-20 09:35
有个讲python self 的,你看下 http://python.jobbole.com/81921/
作者: 变色幽灵    时间: 2017-12-20 10:48
TED 发表于 2017-12-20 09:35
有个讲python self 的,你看下 http://python.jobbole.com/81921/

大概明白,但后续在实验过程中,遇到这个和他们结果不同的?
我这里没有再调用回desc类,而且我把t.x注释掉也不行

WX20171220-104507@2x.png

作者: TED    时间: 2017-12-20 11:13
变色幽灵 发表于 2017-12-20 10:48
大概明白,但后续在实验过程中,遇到这个和他们结果不同的?
我这里没有再调用回desc类,而且我把t.x注释 ...

刚试了下 用python3 结果就正常

python2不行,版本差异的原因吧
作者: 变色幽灵    时间: 2017-12-20 12:44
TED 发表于 2017-12-20 11:13
刚试了下 用python3 结果就正常

python2不行,版本差异的原因吧

soga
谢谢版主




欢迎光临 Crossin的编程教室 (https://bbs.crossincode.com/) Powered by Discuz! X2.5