2016-08-23 7 views
-3

私は小さな問題があります。 defで新しい関数を作成すると、関数の最後にある変数iを変更する必要があります。例:def関数を使ったときに変数を使う方法[Python]

import time 

i = 2 

def Happy_1(): 
    print("Happy Brithday to you") 
    time.sleep(1) 
    print("Happy Brithday to you") 
    time.sleep(1) 
    print("Happy Brithday dear Paul") 
    time.sleep(1) 
    print("Happy Brithday to you") 
    time.sleep(1) 
    print("END") 

def Happy_2(): 
    print("Happy Brithday to you") 
    time.sleep(1) 
    print("Happy Brithday to you") 
    time.sleep(1) 
    print("Happy Brithday dear Peter") 
    time.sleep(1) 
    print("Happy Brithday to you") 
    time.sleep(1) 
    print("END") 

Happy_("i or some variable")() 

何かできますか? は、あなたが使用することができます

+3

? –

+0

私は関数Happy_iを呼び出すので、私は印刷したくありません。これはほんの一例ですが、私はそれを間違って説明しました、申し訳ありません。あなたの反応に感謝します。 –

答えて

0

ありがとう:

locals()["Happy_" + i]() 

または

globals()["Happy_" + i]() 

locals()["Happy_" + i]地元の人々から機能を取得します、そして最終的()は、関数を呼び出します。

+0

はい、私は、関数Happy_1、Happy_2、...を呼び出す必要があります。Happy_iは、変数に依存します。どうもありがとうございました –

0
import time 

i = 2 

def Happy_1(): 
    print("Happy Brithday to you") 
    time.sleep(1) 
    print("Happy Brithday to you") 
    time.sleep(1) 
    print("Happy Brithday dear Paul") 
    time.sleep(1) 
    print("Happy Brithday to you") 
    time.sleep(1) 
    print("END") 

def Happy_2(): 
    print("Happy Brithday to you") 
    time.sleep(1) 
    print("Happy Brithday to you") 
    time.sleep(1) 
    print("Happy Brithday dear Peter") 
    time.sleep(1) 
    print("Happy Brithday to you") 
    time.sleep(1) 
    print("END") 

def error(): 
    print('No such function!') 

print locals().get('Happy_{}'.format(i), error)() 
2

他の人に明らかな解決策がないと確信しています。

def happy(i): 
    names = ['Paul', 'Peter'] 
    ... 
    print('Happy birthday to {}'.format(names(i))) 
0

ありがとう@ダニエルローズマンがこれを指摘してくれました。

PythonのZen - シンプルは複雑です。

このコードを確認してください。

  • 機能Happyには1つの議論があります。したがって、2つの関数を書く必要はありません。

import time 

i = 2 

def Happy(i): 

    if i == 1: 
     print("Happy Brithday to you") 
     time.sleep(1) 
     print("Happy Brithday to you") 
     time.sleep(1) 
     print("Happy Brithday dear Paul") 
     time.sleep(1) 
     print("Happy Brithday to you") 
     time.sleep(1) 
     print("END") 
    elif i == 2: 
     print("Happy Brithday to you") 
     time.sleep(1) 
     print("Happy Brithday to you") 
     time.sleep(1) 
     print("Happy Brithday dear Peter") 
     time.sleep(1) 
     print("Happy Brithday to you") 
     time.sleep(1) 
     print("END") 

Happy(i) 

出力:あなたはそれ関数の引数にしないのはなぜ

C:\Users\dinesh_pundkar\Desktop>python demo.Py 
Happy Brithday to you 
Happy Brithday to you 
Happy Brithday dear Peter 
Happy Brithday to you 
END 
関連する問題