在创建类时,遇到很奇怪的问题,主要原因是提示引用了不存在的变量,以下用具体代码进行说明.
class Stu_A(object):
name='student{}'
other_name=name.format('A')
def __init__(self):
pass
a=Stu_A()
print(a.other_name)
以上代码是可以正确运行的,但是如果再增加一个类属性的话(该类属性是以之前属性格式化而生成的列表),就会提示变量没有被定义的的错误,代码如下:
class Stu_B(object):
name='student{}'
other_name=name.format('A')
name_list = [name.format(i) for i in 'BCDE']
def __init__(self):
pass
b=Stu_B()
print(b.name_list)
Stu_B 这个类无法被创建
提示的错误信息: NameError: name 'name' is not defined
正确的解释请看这里 https://stackoverflow.com/que...
这个问题涉及到两个知识点:
如果你非要这么做也不是不可以,使用 lambda 创建一个立即执行函数就好了: