我正在尝试弄清楚如何将一个函数指向一个函数。我要做的是回答一个提示性问题y/n,它会运行某个函数。当我输入y时,它将遍历两个函数,而不仅仅是函数1。
谢谢!
def company_type(question, public_company, private_company):
print("Is the target company public on NYSE or NASDAQ?")
prompt = f'{question} (y/n)'
ans = input(prompt)
if ans == 'y':
return (public_company)
if ans == 'n':
print("Please enter financial infomation manually.")
return (private_company)
company_type("public_company", "private_company", 1)
# function 1
def public_company():
return (print("Success 1"))
public_company()
# function 2
def private_company():
return (print("Success 2"))
private_company()发布于 2021-11-09 05:57:24
你并不是真的想要返回一个函数。你只想让一个函数调用另一个函数。这是这样做的:
# function 1
def public_company():
return print("Success 1")
# function 2
def private_company():
return print("Success 2")
def company_type(question, public_company, private_company):
print("Is the target company public on NYSE or NASDAQ?")
prompt = f'{question} (y/n)'
ans = input(prompt)
if ans == 'y':
return public_company()
else:
print("Please enter financial information manually.")
return private_company()
company_type("some question", public_company, private_company)请注意,Python中的return语句不使用额外的一组括号。这是一个C语言的成语。
发布于 2021-11-09 06:15:39
你完全可以返回一个函数供以后使用--这是函数式编程的本质,也是使用 in python ~ Guido Van Rossum的原因。
重要的是要记住,括号表示函数调用,而没有括号表示函数对象。
def public_company():
print("we do what public companies do")
def private_company():
print("we do what private companies do")
def choose_company():
ans = input("Is the target company public?")
if ans == 'y':
return public_company # no parens
else:
return private_company # no parens
if __name__ == '__main__':
# assign the returned function to selected_company
selected_company = choose_company()
# calling selected_company() will call the selected function
selected_company() # use parens, this is a function call!发布于 2021-11-09 05:59:28
错误:-
function不是关键字。我们可以通过:- <function_name>().调用函数
# function 1
def public_company():
print("Success")
# function 2
def private_company():
print("Success")
def company_type():
print("Is the target company public on NYSE or NASDAQ?")
prompt = 'Is your company a public company? (y/n)'
ans = input(prompt)
if ans == 'y':
public_company()
if ans == 'n':
print("Please enter financial information manually.")
private_company()
company_type()https://stackoverflow.com/questions/69893354
复制相似问题