[英]Python: generate a different random choice when importing from module (different python file) - Keep getting same output
[英]Getting output from the random Python module
我正在嘗試運行一個腳本,該腳本在列表中采用五個函數,並使用random
模塊隨機選擇一個。
myList = [quote1(), quote2(), quote3(), quote4(), quote5()]
def random_output(): random.choice(myList)
print(random_output)
但是,在運行時,它只是同時打印所有引號,然后是<function random_output at 0x0000019F66EF4430>
。
你應該把你的函數放在myList
中,而不是它們調用的結果。 然后用 random.choice 選擇它后調用random.choice
:
myList = [quote1, quote2, quote3, quote4, quote5]
def random_output():
# select a random function
# call it, and return its output
return random.choice(myList)()
print(random_output())
您不需要只調用另一個 function B 的 function A。只需調用 function B:
import random
myList = [quote1(), quote2(), quote3(), quote4(), quote5()]
random.choice(myList)
如果你真的想把它放在 function 中,可能是因為你在那里做其他事情,你應該總是傳遞你的 function 需要什么,並返回它產生的東西(這稱為“純”函數):
def random_output(aList):
return random.choice(aList)
然后這樣稱呼它:
random_output(myList)
如果你還不想調用函數quote1
、 quote2
等,那么你不應該在它們后面加上括號,直到你想調用它們。 例如:
funcs = [quote1, quote2, quote3, quote4, quote5]
random_func = random.choice(funcs)
result = random_func(my_input)
您必須加上括號來調用您的 function:
myList = [quote1(), quote2(), quote3(), quote4(), quote5()]
def random_output(): random.choice(myList)
print(random_output()) <--- Here
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.