第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

當使用 Flask-SQLAlchemy 的類聲明模型時,為什么列變量不需要“self.”?

當使用 Flask-SQLAlchemy 的類聲明模型時,為什么列變量不需要“self.”?

一只甜甜圈 2023-06-27 18:24:23
例如:class User(db.Model):? ? id = db.Column(db.Integer, primary_key=True)? ? username = db.Column(db.String(80), unique=True, nullable=False)? ? email = db.Column(db.String(120), unique=True, nullable=False)? ? def __repr__(self):? ? ? ? return '<User %r>' % self.username我對 python 類還是新手,所以如果這是一個基本問題,我深表歉意。
查看完整描述

1 回答

?
Qyouu

TA貢獻1786條經(jīng)驗 獲得超11個贊

這就是 Flask-SQLAlchemy 元編程。班級級別的分配定義了一個模式。創(chuàng)建類的實例時,它們包含某種訪問器,以便對相同名稱的引用會self從列中生成特定值。這是可行的,因為 sqlalchemy 編寫了大量代碼來實現(xiàn)它。


這不是普通的 python 類的工作方式。您不需要在常規(guī) Python 類的類級別定義屬性。對于常規(guī)類,訪問檢查self.bar“bar”是否是實例本地的,然后檢查該類上是否存在“bar”。它就像一個后備方案,但并不需要有一個。無論哪種情況,設(shè)置self.bar都會在實例中創(chuàng)建有效的設(shè)置。如:


>>> class Foo:

...     bar = 1

...     def get_bar(self):

...             return self.bar

...     def set_bar(self, val):

...             self.bar = val

... 

>>> foo = Foo()

>>> print(Foo.bar, foo.bar, foo.get_bar())

1 1 1

>>> foo.set_bar(999)

>>> print(Foo.bar, foo.bar, foo.get_bar())

1 999 999

在學(xué)習(xí) Python 時,sqlalchemy、numpy 和 pandas 等模塊背后的魔力可能會讓人們對該語言的工作原理產(chǎn)生錯誤的印象。


查看完整回答
反對 回復(fù) 2023-06-27
  • 1 回答
  • 0 關(guān)注
  • 148 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號