我正在编写一个程序,它为python执行一些代码生成,如果它是一个python关键字,需要区别对待字符串.help(keywords)打印python关键字和一些额外的东西,但我想知道是否有一种pythonic方法来获取具有这些字符串的实际可迭代对象?
我在哪里可以找到Python中常用的所有双下划线变量/关键字的列表?
在Python中,以双下划线开头和结尾的变量通常用于存储元数据或内置到系统中.例如,
#!/usr/bin/env python
__author__ = 'Michael0x2a'
__license__ = 'GPL'
class Test(object):
def __init__(self):
print 'Hello World!'
if __name__ == '__main__':
t = Test()
Run Code Online (Sandbox Code Playgroud)
我很确定__author__,__license__而且非常有名.还有哪些双下划线元数据变量?有一个全面的清单,我可以检查一下吗?我可以自己编造,还是有一堆已成为我应该使用的事实标准?
之类的东西__init__,__name__和__doc__是几乎内置了Python.那些只是两个保留的双下划线关键字吗?还有吗?有些地方我可以获得一份清单吗?
setattr将设置不能与常规属性访问一起使用的名称,即obj.name.
>>> from types import SimpleNamespace
>>> my_instance = SimpleNamespace()
>>> setattr(my_instance, 'from', 0) # works
>>> getattr(my_instance, 'from')
0
>>> my_instance.from
SyntaxError: invalid syntax
Run Code Online (Sandbox Code Playgroud)
如何检查这些名称,以避免使用它们?
我可能偶然发现了一个非法的变量名称
pass = "Pass the monkey!"
print pass
Run Code Online (Sandbox Code Playgroud)
语法错误:语法无效
我知道有些关键字是作为变量禁止的.是否Pythonic等效于JavaScript变量名称验证器?