2010-08-16 31 views

回答

20

沒關係,而且很常見。例如,映射到數據庫記錄的對象通常會將「id」屬性映射到數據庫「id」列值。

屬性始終是「命名空間」,因此您必須通過self.idobj.id來引用它們,因此不會與內置函數發生衝突。

+0

對象的實際ID通常不會作爲屬性公開。嘗試「dir(SomeCustomInstanceOfSomething)」,你不會看到「id」屬性,除非它被專門聲明爲你的自定義類/對象的一部分。 「id(SomeCustomInstanceOfSomething)」不會受到像「myObject.id = 1234」這樣的事情的影響 – ddotsenko 2010-08-16 22:31:45

+0

你讓我對此感覺更好。開始了。 – Ben 2016-06-21 13:49:03

4

我經常爲抽象數據庫表的類執行此操作,因爲沒有合理的名稱衝突機會,因此經常會出現一個名爲id的字段。請注意,一些synatax熒光筆將標記爲內置功能。

+2

+1只是因爲我喜歡你。 – Odomontois 2010-08-16 23:08:35

+1

@Odomontois。感謝您將我的注意力轉到這篇文章。我清理了我的語法 – aaronasterling 2010-08-16 23:26:58

+0

,儘管不是我的拼寫顯然 – aaronasterling 2010-08-16 23:32:43

1

正如其他人所說,具有id屬性是完全正確的,儘管許多人認爲這是數據庫設計的一個不好的做法。但那是另一個問題。

如果你關心一般的約定,你應該檢查出pylint。這個工具分析你的代碼錯誤和約定問題。

http://www.logilab.org/857

相關問題