hasattr() 函数用于判断对象是否包含对应的属性。
#!/usr/bin/python
# -*- coding: UTF-8 -*-
class Coordinate:
x = 10
y = -5
z = 0
point1 = Coordinate()
print(hasattr(point1, 'x'))
print(hasattr(point1, 'y'))
print(hasattr(point1, 'z'))
print(hasattr(point1, 'no')) # 没有该属性
#fix py2exe
if hasattr(sys, "frozen") and sys.frozen in \
("windows_exe", "console_exe"):
p = os.path.dirname(os.path.abspath(sys.executable))
os.chdir(p)
这是一个用于在 windows 下将程序打包成 exe 的库,脚本打包后由于不再是由Python解释脚本的形式运行,
__file__
变量会失去作用。此时具有类似效用的是sys.executable
,同时可以利用sys.frozen
属性来判断是打包的exe还是py脚本。