我试图让它成为当我设置一个变量时,当我拼错它时,我得到一个编译类型的错误。在我到目前为止的所有尝试中,变量才刚刚创建。
我不介意将变量放在类,模块,字典或任何组合中。我只想在拼写错误上有编译时错误
这是一个例子:
class Foo:
bar=""
def __init__(self,bar_value):
self.barr=bar_value # want syntax error here
the_foo=Foo("hellow")
编辑:我的术语错了:我的意思是静态输入
答案 0 :(得分:2)
答案 1 :(得分:2)
请注意,Python的输入很明显,请参阅why的这个问题。您所追求的是静态代码分析的一部分。
某些IDE确实检查了变量名称是否已经设置,请参阅Eclipse和PyCharm下的PyDev,并且使用IDE是我希望唯一能够在输入时发现这些错误的人。
代码分析器如PyLint可以在代码上运行,并且会发现一些错误。
答案 2 :(得分:2)
Python是强类型的 - 使用类最接近的是使用__slots__
限制属性创建,例如:
class Foo(object):
__slots__ = ['bar']
def __init__(self, bar_value):
self.barr = bar_value
the_foo = Foo('bar value')
# AttributeError: 'Foo' object has no attribute 'barr'
中插槽的详情
TL; DR:可以为此类变量分配字符串,可迭代或具有实例使用的变量名称的字符串序列。如果在新样式类中定义,__slots__
会为声明的变量保留空间,并阻止为每个实例自动创建__dict__
和__weakref__
。