2013-11-05 82 views
0

我無法理解類實例是什麼。我閱讀了python中的類的語法頁面。但是,我仍然無法完全理解實例的含義。例如,可以說我創建了一個具有兩個包含「項目」和「鍵」的插槽的類。就我而言,我知道如何使用def __init__(self):self.key = keyself.name = name來初始化對象。但是,我的問題是處理創建一個帶有兩個參數的實例。同樣,我將如何使一個實例成爲一個堆棧?我真的不想要任何代碼,但是有人可以用簡單的術語來描述解決方案嗎?多謝你們!在python中創建實例

@drewk -

class morning(object): 
    __slots__ = ('key', 'name') 

    def __init__(self, name, key): 
     self.name = name 
     self.key = key 
     return self 
+0

你是什麼意思'做一個實例stack'? – thefourtheye

+0

所以基本上,我正在寫的代碼涉及一個堆棧,其中包含一個鍵和一個名稱的兩個參數。製作一個實例是否意味着初始化這兩個對象? – user2933041

+0

'類'早上只是代碼。當你第一次調用**類來創建一個屬於這個「類」類的對象時,你會得到該類的**實例**。希望這能說明問題。 –

回答

0

提取物。

class Fruit: 
    """ An Eatables Class""" 
    def __init__(self, color="Black", shape="Round"): # Initailization 
     self.color = color # Set Class Variables to passed values 
     self.shape = shape # If no value passed, default to hard-coded ones. 

Mango = Fruit("Raw Green", "Mangool") 
# Above statement instantiates Class Fruit by passing variables as arguments. 
# Thus, Mango is an **instance** of class **Fruit** 

現在,在訪問變量

>>>print Mango.color 
Raw Green 

另一個例子

class My_List: 
    """My List Implementation""" 
    def __init__(self, *args): 
     self.data = list(args) 
     self.Length = len(args) 

    def GetMean(self): 
     return 1.0*sum(self.data)/len(self.data) 

    def Add(self, *args): 
     self.data.extend(list(args)) 
     self.Length += len(args) 

whole_num = My_List(0,1,2,3,4,5) 
# Made an **instance** of class **My_List** 

變量加入

>>>print whole_num.GetMean() 
2.5 
>>>whole_num.Add(6, 7) 
>>>print whole_num.data 
[0, 1, 2, 3, 4, 5, 6, 7] 
2

這是一個實例變量和類變量之間的差別:

class Test(object): 
    x='CLASS x my man' 
    def __init__(self, x=0, y=1): 
     self.x=x 
     self.y=y 

t1=Test(3,4) 
t2=Test(5,6) 
print 't1:', t1.x  
print 't2:', t2.x 
print 'class:', Test.x 

打印:

從我福利局教程
t1: 3 
t2: 5 
class: CLASS x my man 
+0

哎謝謝你的回覆@drewk。我正在編輯我的代碼,並且可以告訴我,如果這是製作類實例的好方法嗎? – user2933041