2016-03-23 18 views
0

私はPythonには新しく、ほとんど私は自分自身を試して教えるために遊んでいます。python 3.5.1は関数から文字列を返さない

私は多かれ少なかれ、このように書き機能があります。

str1 = "a" 
str2 = "b" 
str3 = "c" 
thing = random.randint(1,2) 
def fun(): 
    if(thing == 1): 
    strVal = str1 + str2 
    elif(thing == 2): 
    strVal = str2 + str3 
    return strVal 
outp = fun 

を私はコンソールに試してみて、print(outp)とき、私は<function fun at 0x000001F29138AAE8>の代わりに、私は、文字列を得るのですか"ab"または"bc"のような出力を得ます結果はfunとなります。これを回避する方法についての私の検索では、print()関数のドキュメントとサンプルのみを購入しています。これは実際に私が望むものではありません。

+0

'randint'とまったく同じように、関数を呼び出す必要があります。 – jonrsharpe

答えて

0

コードでは、関数を呼び出さないでください。関数は、あなたが0x000001F29138AAE8で関数funを参照してください理由です

outp = fun() 

以下のように呼び出されます。基本的にPythonは、変数outpがアドレス0x000001F29138AAE8の関数へのポインタであることを伝えます。

+1

それを指摘してくれてありがとう。あなたと@jonrsharpeの間で、私は今何をしているのか知っています。 – user78524

関連する問題