python中的顶层函数 python置顶窗口( 四 )


class BasePizza(object):
__metaclass__= abc.ABCMeta
default_ingredients = ['cheese']
@classmethod
@abc.abstractmethod
def get_ingredients(cls):
"""Returns the ingredient list."""
return cls.default_ingredients
class DietPizza(BasePizza):
def get_ingredients(self):
return ['egg'] + super(DietPizza, self).get_ingredients()
这个例子中 , 你构建的每个pizza都通过继承BasePizza的方式,你不得不覆盖get_ingredients方法,但是能够使用默认机制通过super()来获取ingredient列表 。
python 中的if __name__=='__main__': main()是什么 意思呢一个 Python 源码文件除了可以被直接运行外python中的顶层函数,还可以作为模块(也就是库)被导入 。不管是导入还是直接运行 , 最顶层的代码都会被运行(Python 用缩进来区分代码层次) 。而实际上在导入的时候,有一部分代码我们是不希望被运行的 。
if __name__ == '__main__' 就相当于是 Python 模拟的程序入口 。Python 本身并没有规定这么写,这只是一种编码习惯 。由于模块之间相互引用,不同模块可能都有这样的定义,而入口程序只能有一个 。到底哪个入口程序被选中 , 这取决于 __name__ 的值 。
举例子说明一下,假设有一个 const.py 文件,内容如下:
PI = 3.14
def main():
print "PI:", PI
main()
扩展资料
如果模块是被直接运行的,则代码块被运行,如果模块是被导入的,则代码块不被运行 。实际上 , 这个问题还可以衍生出其python中的顶层函数他的一些知识点 , 例如 __main__.py 文件与 Python 的 -m 参数 。
输出结果只列出了关键的部分,应该很容易看出他们之间的差异 。直接运行是把 run.py 文件所在的目录放到了 sys.path 属性中 。以模块方式运行是把python中的顶层函数你输入命令的目录(也就是当前工作路径),放到了 sys.path 属性中 。
参考资料来源:百度百科—Python
【python中的顶层函数 python置顶窗口】python中的顶层函数的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于python置顶窗口、python中的顶层函数的信息别忘了在本站进行查找喔 。

推荐阅读