NameError: global name Error in Class , but is actually defined
NameError: global name Error in Class , but is actually defined
我有以下代码,其中 class 不尊重自己。 name.,当我在函数中访问 class 变量时,它抱怨 self.variable 不是全局变量。任何想法为什么?
from sqlalchemy import Column, ForeignKey, Integer , String, Float, DateTime
from sqlalchemy.ext.declarative import declarative_base
Base=declarative_base()
class Designs(Base):
__tablename__='designs'
design_name=Column(String(80),nullable=False,primary_key=True)
@property
def serialize(self):
return{
'design_name': self.design_name,
}
当我访问 class 时,design_name 在那里,但不知何故 python 抱怨它没有声明为全局?有任何想法吗?
假设使用设计 class 声明的温度,并填充了 design_name
的值
print temp.design_name
print temp.serialize()
xpc_fp <----- print i.design_name works
序列化命令不起作用**并给出以下错误:
Traceback (most recent call last):
File "<stdin>", line 3, in <module>
File "database_setup.py", line 149, in serialize
'design_name': self.design_name,
NameError: global name 'design_name' is not defined
您将序列化定义为 属性 - 因此您应该将其视为 属性。
from sqlalchemy import Column, ForeignKey, Integer , String, Float, DateTime
from sqlalchemy.ext.declarative import declarative_base
Base=declarative_base()
class Designs(Base):
__tablename__='designs'
design_name=Column(String(80),nullable=False,primary_key=True)
@property
def serialize(self):
return{
'design_name': self.design_name,
}
temp = Designs(design_name='HELLO THERE')
print(temp.design_name)
print(temp.serialize)
因此从 .serialize 调用中删除括号
输出:
你好
{'design_name': 'HELLO THERE'}
我有以下代码,其中 class 不尊重自己。 name.,当我在函数中访问 class 变量时,它抱怨 self.variable 不是全局变量。任何想法为什么?
from sqlalchemy import Column, ForeignKey, Integer , String, Float, DateTime
from sqlalchemy.ext.declarative import declarative_base
Base=declarative_base()
class Designs(Base):
__tablename__='designs'
design_name=Column(String(80),nullable=False,primary_key=True)
@property
def serialize(self):
return{
'design_name': self.design_name,
}
当我访问 class 时,design_name 在那里,但不知何故 python 抱怨它没有声明为全局?有任何想法吗?
假设使用设计 class 声明的温度,并填充了 design_name
的值 print temp.design_name
print temp.serialize()
xpc_fp <----- print i.design_name works
序列化命令不起作用**并给出以下错误:
Traceback (most recent call last):
File "<stdin>", line 3, in <module>
File "database_setup.py", line 149, in serialize
'design_name': self.design_name,
NameError: global name 'design_name' is not defined
您将序列化定义为 属性 - 因此您应该将其视为 属性。
from sqlalchemy import Column, ForeignKey, Integer , String, Float, DateTime
from sqlalchemy.ext.declarative import declarative_base
Base=declarative_base()
class Designs(Base):
__tablename__='designs'
design_name=Column(String(80),nullable=False,primary_key=True)
@property
def serialize(self):
return{
'design_name': self.design_name,
}
temp = Designs(design_name='HELLO THERE')
print(temp.design_name)
print(temp.serialize)
因此从 .serialize 调用中删除括号
输出:
你好
{'design_name': 'HELLO THERE'}