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'}