2016-12-14 5 views
0

私は多くの異なったフォーラムの投稿を通じて見てきたし、異なる技術の束を試してみましたが、私は何の引用を持っていないのではなく、文字列「」を返すために私のSTR機能を取得する方法を考え出したていません。__str__関数は文字列を返さず、代わりにインスタンスを返します。

マイコード:

class Comment: 
    def __init__(self,commenterName, content): 
     self.name = commenterName 
     self.content = content 

    def __str__(self): 
     return str('%s: %s' %(self.name, self.content)) 

私はそれが文字列値を返す必要があります)(STRと私のSTR機能で私の戻り値を伴ういた場合、私は理解して何から。代わりに

...:

>>>Comment("lol","lol") 
<__main__.Comment object at 0x000000000354CF60> 

私は特に私が知っている、それを文字列として値を返すのではなく印刷する必要があります。

私は、出力取得しようとしています:

"lol": "lol" 

を私が管理している最高です:

lol: lol 

私はかなりいつかのために、まさにこの小さな問題に取り組んできたと理解することはできません私が間違ってやっている事を事前に協力いただきありがとうございます:D

P.S.それは私が、端末の印刷()コマンドを使用してだけでなく、使用していないことなく、これを達成しようとしている

'commenterName: content' 

値を返すように私は、端末に

Comment(commenterName,content) 

を使用しようとしています端末のstr()コマンドしかし、私のpythonファイルでは、それは良いです、私はちょうど何らかの方法で値を返す必要があります。あなたは__str__機能を呼び出す必要が

+2

試し '__repr__'、ないその' __str__'。 'print(Comment(" lol "、" lol "))'を使ってください。 –

+0

は、どのように私は、私はターミナルでのコメント(名前、コンテンツ)を実行し、受信でき__repr__実装し、「名前:コンテンツ」の出力のでしょうか?あなたのクラスの – CoopStad

+0

は__str__' 'の定義の後に' __repr__ = __str__'を割り当てます。 –

答えて

0

..私は、私は解決策を見つけることを試みていると述べたように私は、これは再投稿のあまりないことを願うが、私は非常にそれらを動作させることはできません。オブジェクトを起動する端末に入力して押し

my_var = Comment('name', 'content') print(str(my_var)) print('My message is: %s'.format(my_var)

+0

端末に余分なコードを入力しないでこれを行う方法はありますか?例えば、Comment(name、content)を実行して、 'name:output'という文字列を返すことができますか? – CoopStad

+0

変数を保持する必要がなく、単にそれらの値を出力したい場合は、変数を出力する関数を作成することができます。そうでなければ、あなたの最善の策は 'print(Comment( 'name'、 'content'))' –

関連する問題