当我使用def函数[Python]时,如何使用变量
我有个小问题。当我使用当我使用def函数[Python]时,如何使用变量,python,python-3.x,Python,Python 3.x,我有个小问题。当我使用def创建一个新函数时,我希望根据某个变量在函数末尾更改I。例如: 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) prin
def
创建一个新函数时,我希望根据某个变量在函数末尾更改I
。例如:
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")()
有可能做点什么吗?
谢谢您可以使用:
locals()["Happy_" + i]()
或
locals()
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)()
def happy(i):
names = ['Paul', 'Peter']
...
print('Happy birthday to {}'.format(names(i)))
感谢@Daniel Roseman指出这一点
Python之禅-简单比复杂好。
请检查这个代码
- 函数Happy接受一个参数。因此不需要编写两个函数
输出:
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
为什么不把它作为函数的参数呢?因为我调用函数Happy_i,我不想打印。这只是个例子,但我解释错了,对不起。谢谢你的反应。是的,我想调用函数Happy_1,Happy_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