2017-04-25 68 views
1

所以我正在寫一個可行的類,但它並不完全給我想要的東西。這是我的代碼。Python:零售類

class RetailItem(): 
    def __init__(self,ItemDesc,unit_Inv,Price): 
     self.ItemDesc=ItemDesc 
     self.unit_Inv=unit_Inv 
     self.Price=Price 
    def get_ItemDesc(self): 
     return self.ItemDesc 
    def get_unit_Inv(self): 
     return self.unit_Inv 
    def get_Price(self): 
     return self.Price 

def main(): 

    ItemDesc1=RetailItem('Jacket', '12', '59.95') 

    unit_Inv1=ItemDesc1.get_unit_Inv() 
    Price1=ItemDesc1.get_Price() 

    ItemDesc2=RetailItem('Designer Jeans', '40', '34.95') 
    unit_Inv2=ItemDesc2.get_unit_Inv() 
    Price2=ItemDesc2.get_Price() 


    ItemDesc3=RetailItem('Shirt', '20', '24.95') 
    unit_Inv3=ItemDesc3.get_unit_Inv() 
    Price3=ItemDesc3.get_Price() 


    print('Description Units In Inventory Price') 
    print('_________________________________') 
    print(ItemDesc1,unit_Inv1, Price1, sep=' ') 
    print(ItemDesc2,unit_Inv2,Price2,sep=' ') 
    print(ItemDesc3,unit_Inv3,Price3,sep=' ') 

main() 

它給我的輸出是

Description Units In Inventory Price 
_________________________________ 
<__main__.RetailItem object at 0x01AF6C10> 12 59.95 
<__main__.RetailItem object at 0x03BB8250> 40 34.95 
<__main__.RetailItem object at 0x04062510> 20 24.95 

我想要的結果應該是這樣的:

Description Units In Inventory Price 
__________________________________________ 
Jacket   12     59.95 
Designer Jeans 40     34.95 
Shirt   20     24.95 

所以我的問題是在哪裏我會錯呢?我想也許它需要另一行代碼來表示實際名稱本身。但是,當我這樣做時,它給了我一個恐懼。有些指點和建議會很好。

+3

您需要實現'__str__'方法。同樣在Python中,屬性名稱以小寫字母開頭。 – ozgur

+0

它給了我一個類型錯誤.. – CarryDove

+0

或打印'ItemDesc1.ItemDesc'作爲'print'的第一個參數(但是我真的建議你實現'__str__'作爲你的類的一個方法)。 –

回答

0

嘗試添加一個str方法到您的類,所以描述返回爲一個字符串,而不是python對象。

class RetailItem(): 
    def __init__(self,ItemDesc,unit_Inv,Price): 
     self.ItemDesc=ItemDesc 
     self.unit_Inv=unit_Inv 
     self.Price=Price 
    def __str__(self): 
     return self.ItemDesc 
    def get_ItemDesc(self): 
     return self.ItemDesc 
    def get_unit_Inv(self): 
     return self.unit_Inv 
    def get_Price(self): 
     return self.Price 

def main(): 

    ItemDesc1=RetailItem('Jacket', '12', '59.95') 
    ItemDesc2=RetailItem('Designer Jeans', '40', '34.95') 
    ItemDesc3=RetailItem('Shirt', '20', '24.95') 

    print('Description Units In Inventory Price') 
    print('_________________________________') 
    print(ItemDesc1, ItemDesc1.get_unit_Inv(), ItemDesc1.get_Price(), sep=' ') 
    print(ItemDesc2, ItemDesc2.get_unit_Inv(), ItemDesc2.get_Price(), sep=' ') 
    print(ItemDesc3, ItemDesc3.get_unit_Inv(), ItemDesc3.get_Price(), sep=' ') 

main() 
0

沒關係的傢伙,我自己解決了,顯然我確實需要爲物品描述添加另一行。

基本上這是我所需要的。

ItemDesc03=ItemDesc3.get_ItemDesc()