在python中运行没有为其分配对象的类?

时间:2017-09-13 12:38:12

标签: python python-2.7 python-3.x class

class Run(object):

    def run(self):
        print('run, save yourself')

Run().run()

打印出来

  

'跑,保存自己'

如何在不定义对象的情况下运行类及其函数?

我们必须为该类分配一个对象,然后像

一样运行它

r = Run()

r.run()

python是否自动将对象分配给Class然后运行它?

2 个答案:

答案 0 :(得分:3)

以下是您运行Run().run()时发生的情况:

1- Run()创建Run对象
反过来,这个对象自己调用它的方法run()

这相当于:

r = Run()
r.run()

除非在你的情况下,你的对象Run()被创建,然后立即进行垃圾收集,因为在执行run()方法之后没有任何指向它的东西。

答案 1 :(得分:1)

如果您希望课程无需拨打class Run(object): def __init__(self): self.run() def run(self): print('run, save yourself') Run() >>> run, save yourself 即可投放,您可以尝试这样的事情

class Run(object):
    def __call__(self):
        self.run()

    def run(self):
        print('run, save yourself')

r = Run()
r()
>>> run, save yourself

扩展,你也可以

{{1}}