首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >缺少位置参数Python (指向函数)

缺少位置参数Python (指向函数)
EN

Stack Overflow用户
提问于 2021-11-09 05:46:52
回答 3查看 43关注 0票数 1

我正在尝试弄清楚如何将一个函数指向一个函数。我要做的是回答一个提示性问题y/n,它会运行某个函数。当我输入y时,它将遍历两个函数,而不仅仅是函数1。

谢谢!

代码语言:javascript
复制
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()
EN

回答 3

Stack Overflow用户

发布于 2021-11-09 05:57:24

你并不是真的想要返回一个函数。你只想让一个函数调用另一个函数。这是这样做的:

代码语言:javascript
复制
# 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语言的成语。

票数 1
EN

Stack Overflow用户

发布于 2021-11-09 06:15:39

你完全可以返回一个函数供以后使用--这是函数式编程的本质,也是使用 in python ~ Guido Van Rossum的原因。

重要的是要记住,括号表示函数调用,而没有括号表示函数对象。

代码语言:javascript
复制
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!
票数 1
EN

Stack Overflow用户

发布于 2021-11-09 05:59:28

错误:-

  • function不是关键字。我们可以通过:- <function_name>().

调用函数

代码语言:javascript
复制
# 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()
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69893354

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档