簡體   English   中英

Python類和對象創建

[英]Python class and object creation

我在創建類的對象時遇到問題。 類的對象具有其類的屬性(即字段,方法)。 我們還可以為類之外的對象定義屬性嗎???

class myclass:
    pass

object1 = myclass()
object2 = myclass()

object1.list = [10]
object1.list.append(4)

object2.fruit = 'apple'

print object2.fruit
print object1.list

OUTPUT:

apple
[10, 4]

請說明其運作方式。

(摘自后文)

通過一點搜索,我發現一篇文章相信可以解決您在這里所說的話 快速閱讀后,聽起來在python中實際上是合法的。 您正在創建類屬性。 也只能從您為其分配的類中訪問它們。 例如, print object2.list無效。 它基本上是一個實例變量,它不僅對對象類型而且對對象本身都是專用的。

我會嘗試一下。 抱歉,如果不清楚。 到目前為止,我所閱讀的內容已幫助我理解了類對象: https : //docs.python.org/2/reference/datamodel.html

類對象不過是分配了dict的名稱空間。 當您添加屬性時,它們將被添加為字典的鍵。 您可以通過執行此操作來檢查


dir(object1)
dir(object2)

但是像上面的示例那樣添加屬性會導致內存增加,您可以通過聲明__slots__來停止此行為。

class A(object):
    __slots__ = []

這將停止為A的任何實例創建屬性。有關__slots__用法的更多信息?

希望這可以幫助

暫無
暫無

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

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