请帮助我,我在这里做错了什么,因为我得到下面的错误:
TypeError:fizz_buzz()接受0个位置参数,但提供了1个
class FizzBuzz:
def __init__(self, number_value):
self.number_value = number_value
def fizz_buzz():
if number_value % 3 == 0 and number_value % 5 == 0:
print("FizzBuzz")
elif number_value % 3 == 0:
print("Fizz")
elif number_value % 5 == 0:
print("Buzz")
else:
return f"{number_value} can't be multiplied by either 3 or 5"
number_value = int(input("Enter number: "))
fizzbuzz_object = FizzBuzz(number_value)
fizzbuzz_object.fizz_buzz()
6条答案
按热度按时间xyhw6mcr1#
这意味着类中的所有函数都应该至少有一个参数,
z9smfwbn2#
确保在创建类方法时始终有一个名为“self”的参数:
db2dz4w83#
您需要引用类的当前(self)示例。请尝试:
而不是:
ippsafx74#
添加了以下代码,解决了此问题:
dkqlctbz5#
下面是详细的答案:
fizz_buzz()
是一个方法。方法在Python中是对象类型。方法像函数一样是可调用的,但它们绑定了某个对象,并且该对象作为其第一个参数注入到方法中。这就是为什么类方法被称为“示例方法”。如果运行以下命令:您将得到以下结果:
Python看到了
.fizz_buzz
这个点,它知道这个方法是绑定到对象的。这是fizz_buzz
变成一个方法的时候。到目前为止,它被认为是一个函数。这实际上是方法和函数之间的区别。方法是绑定的。这将返回
false
。第一个类型是“函数”,第二个类型是“方法”这是python在幕后调用的
通过将对象注入到方法中,方法可以访问对象的名称空间。
yquaqz186#
示例方法需要在第一个参数中使用
self
,如下所示:输出量:
详细地,我在我的答案中解释了关于What is an "instance method" in Python?的示例方法,并且在我的答案中解释了关于@classmethod vs @staticmethod in Python的**@类方法和@静态方法**: