Python 我怎么能不在SQLAlchemy中覆盖变量?

Python 我怎么能不在SQLAlchemy中覆盖变量?,python,sqlalchemy,Python,Sqlalchemy,目前正在学习flaskpython教程,现在它将提供一个关于使用SQLAlchemy的数据库的基本教程。我试图在项目中编写代码,到目前为止,我的代码按预期的方式工作,但我有点困惑为什么某个部分的工作方式是这样的 下面是我正在努力掌握的代码片段,它使用SQLAlchemy python库构建一个表示数据库表的类 class Puppy(db.Model): __tablename__ = 'puppies' id = db.Column(db.Integer, primary_

目前正在学习flaskpython教程,现在它将提供一个关于使用SQLAlchemy的数据库的基本教程。我试图在项目中编写代码,到目前为止,我的代码按预期的方式工作,但我有点困惑为什么某个部分的工作方式是这样的

下面是我正在努力掌握的代码片段,它使用SQLAlchemy python库构建一个表示数据库表的类

class Puppy(db.Model):

    __tablename__ = 'puppies'

    id = db.Column(db.Integer, primary_key=True)
    name = db.Column(db.Text)
    age = db.Column(db.Integer)
    breed = db.Column(db.Text)

    def __init__(self, name, age, breed):
        self.name = name
        self.age = age
        self.breed = breed
然后,我可以在一个单独的python脚本中导入“Puppy”对象,并通过调用Puppy对象和传递适当的参数为新的Puppy创建一个表条目,例如:

Puppy('Fido','4','border collie') 
我迷路的地方是变量赋值。在init方法运行之前,所有这些变量都被分配给SQLAlchemy列对象,但是每当一个Puppy对象被实例化时,我会认为分配给这些变量的任何内容都会被覆盖。init方法似乎应该将参数传递给列对象,而不是为它们分配输入,但不知何故,它就是这样工作的。如有任何澄清,我们将不胜感激。

以下是一些提示:。该行为基于元类和描述符。以下是一些指针:。行为基于元类和描述符。