【问题标题】:为什么我不能将函数作为参数传递给随机数? [关闭]
【发布时间】:2022-01-23 12:27:14
【问题描述】:

在我的项目中,我有一个函数应该从用户输入中返回一个值并将这个值赋给函数 random,但是解释器说这个参数应该只是一个数值,而不是一个方法。

def func(self):
    rand = random.randrange(0, self.high)
    print(rand)

def high(self):
    choice = int(input("Type last point: ")
    retrun choice

【问题讨论】:

  • 这些函数在类中。 self.high 是从用户输入返回值,应该随机作为参数
  • 您应该发布一段工作代码,而不仅仅是 4 行,因为您需要类定义,即使它很容易重现。请参阅下面的@sunil ghimire 答案。这个答案对你有好处吗?
  • 好的,现在我明白了
  • 请验证以下对您最有帮助的答案之一。谢谢

标签: python python-3.x function input return


【解决方案1】:

您传入self.high,这是对您的方法的引用。相反,你想要的是通过调用方法传递它的返回值:

def func(self):
    rand = random.randrange(0, self.high())
    print(rand)

注意方法名称后面的括号(),这在这里很重要。

【讨论】:

    【解决方案2】:

    首先您在 return 中有拼写错误,其次 - 您正在调用方法,因此您必须在方法名称中使用括号 ()

    import random
    class Hello:
        def high(self):
            choice = int(input("Type last point: "))
            return choice
    
        def func(self):
            rand = random.randrange(0, self.high())
            print(rand)
    
    h = Hello()
    h.func()
    

    【讨论】:

    • 我不确定为什么这个答案被否决,但您可能想为您的答案添加一些解释。仅代码的答案很少有帮助。
    • 这是一个非常好的和完整的答案,不赞成它是一种耻辱。并且 OP 不包含完整的代码,如 self 参数所示。
    • 感谢@Matthias 的建议。更新答案
    猜你喜欢
    • 2018-09-03
    • 2018-09-12
    • 2021-10-10
    • 2020-05-15
    • 2013-06-06
    • 1970-01-01
    • 1970-01-01
    • 2011-10-27
    • 1970-01-01
    相关资源
    最近更新 更多