python internal - 如何真正创建函数

时间:2018-04-22 13:43:40

标签: python types internals syntactic-sugar

我正在尝试了解有关python及其工作原理的更多信息

如果我们想在python中声明一个函数。我们这样做

def bar():
    print("my great bar function")
bar()

我被告知在python的引擎盖下,这对应于

class bar():
    def __call__(self, *args, **kwargs):
        print("my great bar function ")
a =bar()
a()

但是class bar()只是

的语法糖
bar = type("bar",(object,),{"__call__":Placeholder_for_source_code})

a= bar()
a()

我正在尝试将类型正文中的Placeholder_for_source_code替换为用于打印“my great bar function”的源代码。当我检查bar.__dict__['__call__']

当我检查上面的班级栏时我回来的是<function bar.__call__ at 0x00000000035B37B8> 有人可以告诉我这是如何工作的。

0 个答案:

没有答案