2016-08-08 2 views
0

私はちょうど初心者ですので、私は簡単です。私はちょうどSTR方法の終わりにタイプミスがあり__str__方法で遊んで、私はインスタンスを印刷しようとすると、それだけでクラスインスタンスで__str__を呼び出すと出力が得られませんか?

import random 

brand = ("Samsung","Nokia","Sony","ATAT","Reliance") 
no_of_sim = ("Dual-sim","Single-sim") 
color = ("Blue","Violet","Orange","Green") 
no_of_camera =("Front","Front-Back","Back") 
no_of_cores = ("Dual Core","Quad Core","Octa Core") 
additional = ("Bluetooth","NFS","Gps") 

class mobile: 
    def __init__(self,**kwargs): 
     name = self 
     self.brand = random.choice(brand) 
     self.sim = random.choice(no_of_sim) 
     self.color = random.choice(color) 
     self.camera = random.choice(no_of_camera) 
     self.cores = random.choice(no_of_cores) 
     self.additional = random.choice(additional) 
     for key,value in kwargs.items(): 
      setattr(self,key,value) 
    def __str__(self): 
     return "{} Is a {} color {} phone with {} facing cameras and it a {} with {}".format(self.__class__.__name__,self.color,self.brand,self.camera,self.cores,self,additional) 
from mobile_phone import mobile 
swiss = mobile() 
print(swiss) 
# It doesnt show up 
+1

あなたは「それはうまく動作しない」にさらに詳しく説明することはできますか?あなたの質問から、このコードを実行しようとすると、何が表示されているのかがわかりません。また、ここに示したコードでは、少なくともインデントエラーがあるように見えます(元のソースにタブとスペースを混ぜていないことを確認してください)。 – mgilson

+1

@mgilsonだから、悪いです。 OP、インデントを修正すると、再帰エラーが発生します。 [mcve]を挙げてください。 – jonrsharpe

+0

'' 'self、additional'''はドットの代わりにコンマですか? – wwii

答えて

0

あなたは、ドットを必要とコンマがあります。

import random 

brand = ("Samsung","Nokia","Sony","ATAT","Reliance") 
no_of_sim = ("Dual-sim","Single-sim") 
color = ("Blue","Violet","Orange","Green") 
no_of_camera =("Front","Front-Back","Back") 
no_of_cores = ("Dual Core","Quad Core","Octa Core") 
additional = ("Bluetooth","NFS","Gps") 

class mobile: 
    def __init__(self,**kwargs): 
     name = self 
     self.brand = random.choice(brand) 
     self.sim = random.choice(no_of_sim) 
     self.color = random.choice(color) 
     self.camera = random.choice(no_of_camera) 
     self.cores = random.choice(no_of_cores) 
     self.additional = random.choice(additional) 
     for key,value in kwargs.items(): 
      setattr(self,key,value) 
    def __str__(self): 
     return("{} Is a {} color {} phone with " 
       "{} facing cameras and it a {} with {}".format(
        self.__class__.__name__, 
        self.color, 
        self.brand, 
        self.camera, 
        self.cores, 
        self.additional)) # changed from self,additional 

#from mobile_phone import mobile 
swiss = mobile() 
print(swiss) 

を出力:

mobile Is a Green color Reliance phone with Front-Back facing cameras and it a Dual Core with Bluetooth 
1

動作しないことが判明した。

self,additional 

strメソッドを再帰的にします。変更する "、" to "問題を取り除きます。

関連する問題