簡體   English   中英

是否可以從類范圍中創建屬性?

[英]Is it possible to create attributes out of the class scope?

是否可以向其范圍之外的對象添加屬性?

即:以下代碼不起作用,我該怎么做我打算用該代碼做什么?

b = object()
b.foo = "bar"

一般來說,這是可能的。 但是,大多數類型都不可能用C語言實現,而不是用Python實現。 不幸的是,這適用於最常用的標准Python解釋器的內置類型。

如果你在Python中定義自己的類,你會發現它工作正常。

class MyObject(object):
    pass

b = MyObject()
b.foo = "bar"

object()實例在設計上是“ 無特征的 ”,因為它們沒有任何魔術方法(沒有dict,沒有getter / setter,沒有迭代等)來指示你可能期望從其他類型中獲得的默認行為。 為了使它工作,您必須首先將object子類化:

class Foo(object): pass
f = Foo()
f.bar = "omgwtf!"

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM