【问题标题】:i haven't asked for an argument in my code,but then also its saying "all( ) requires exactly 1 argument,0 given " and i dont know what shoul i do我没有在我的代码中要求一个参数,但它也说“all() 需要正好 1 个参数,0 给定”,我不知道我应该做什么
【发布时间】:2021-11-08 20:38:08
【问题描述】:
class alphabet():
    def all():
        start=str(input('enter the alphabet you want to start with'))
        end=str(input('enter the alphabet you want to end with'))``
        for j in range (0,25):
            if start==chr(65+j):
            start=65+j
        for k in range(1,25):
            if end==chr(65+k):
                end=65+k
        for i in range (start,end):
            print(chr(i))
    
alphabet(all())

请尽快解决错误 我正在尝试创建一个“alphabets”类,其中我定义了一个名为“all”的函数,它将根据用户输入编写字母开始和结束

【问题讨论】:

  • def all(self): 是类函数中所需要的
  • 你不是在调用alphabet.all(),你是在调用名为all()的内置顶级函数。
  • @Cap10 - 这里不需要alphabet 类。去掉它。重命名all函数并使用它。
  • 另一个提示,考虑使用ord("A") 而不是65。幻数混淆了你的目的。
  • @Barmar 对不起大家!!我早些时候试图制作自己的类,该类具有将字母从“用户输入”写入“用户输入”的功能,当时我不清楚“类”,所以我没有使用“自我”。顺便说一句可以有人给出构建我想要的功能的代码吗?

标签: python function class oop


【解决方案1】:

不要使用all。它是一个内置的保留函数是python。重命名。

here

【讨论】:

  • 问题远不止这个。
  • @Barmar 我知道.. 让我们一一介绍。见我的 cmets。
【解决方案2】:

这段代码有几个问题。

  • alphabet(all()) 不符合您的预期。调用类alphabet() 会创建该类的对象实例。在这种情况下,您将创建一个实例并将 all() 作为参数传递。

  • all 是一个内置的 python 函数,它至少需要一个参数。那是你错误的根源。您应该始终避免使用 python 内置函数的名称定义函数。

我建议只创建一个函数来执行您需要执行的任务。如果你需要它作为一个类方法,这是你应该使用的格式:

class MyClass:
   '''A minimal class example.'''
   def my_method(self):
      '''A minimal method example'''
      # my code here

然后你调用这个方法:

my_class_instance = MyClass()
my_class_instance.my_method()  # calls the method

【讨论】:

    猜你喜欢
    • 2017-03-12
    • 1970-01-01
    • 1970-01-01
    • 2014-10-27
    • 2022-01-22
    • 1970-01-01
    • 2021-01-18
    相关资源
    最近更新 更多