首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >不带“self”的Python调用方法

不带“self”的Python调用方法
EN

Stack Overflow用户
提问于 2013-09-08 10:27:42
回答 4查看 106.7K关注 0票数 61

所以我刚开始用python编程,我不明白'self‘背后的全部原因。我知道它几乎就像一个全局变量一样使用,这样数据就可以在类中的不同方法之间传递。我不明白为什么在调用同一个类中的另一个方法时需要使用它。如果我已经在那个班级了,为什么我还要说呢?

例如,如果我有:为什么我需要self.thing()?

代码语言:javascript
复制
class bla:
    def hello(self):
        self.thing()

    def thing(self):
        print "hello"
EN

回答 4

Stack Overflow用户

发布于 2013-09-08 12:38:19

此外,您还可以在类static中创建方法,因此不需要self。然而,如果你真的需要的话,可以使用它。

你的:

代码语言:javascript
复制
class bla:
    def hello(self):
        self.thing()

    def thing(self):
        print "hello"

静态版本:

代码语言:javascript
复制
class bla:
    @staticmethod
    def hello():
        bla.thing()

    @staticmethod
    def thing():
        print "hello"
票数 59
EN

Stack Overflow用户

发布于 2014-07-23 09:18:07

对我来说,self就像一个作用域定义者,用self.foo()和self.bar来表示类中定义的函数和参数,而不是其他地方定义的那些。

票数 2
EN

Stack Overflow用户

发布于 2020-04-29 15:15:45

我在下面的代码中尝试过,在类中不带参数地声明方法,并使用类名调用方法。

代码语言:javascript
复制
class Employee:

    def EmpWithOutPar():
        return 'Hi you called Employee'

print(Employee.EmpWithOutPar())

输出:您好,您呼叫了员工

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18679803

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档