呐各蓝仁 发表于 2023-10-20 20:14:43

python问题

class C:
    def _init_ (self, x, y):
      self.x = x
      self.y = y
    def add(self):
      return self.x + self.y学习类的过程中,编译后,输入c=C(2,3)怎么就错误了

c=C(2,3)
Traceback (most recent call last):
File "<pyshell#0>", line 1, in <module>
    c=C(2,3)
TypeError: C() takes no arguments

isdkz 发表于 2023-10-20 20:15:00

问题出在类的构造方法上。在Python中,构造方法应该使用双下划线来定义,即 __init__ 而不是 _init_ 。修改代码如下:

class C:
    def __init__(self, x, y):
      self.x = x
      self.y = y

    def add(self):
      return self.x + self.y

c = C(2, 3)


这样就可以正确地创建 C 类的实例了。

陶远航 发表于 2023-10-20 20:15:19

你的问题是在Python类的初始化方法中的一个常见错误。在Python中,类的初始化方法应该是__init__,而不是_init_。你的代码应该如下所示:

class C:
    def __init__(self, x, y):
      self.x = x
      self.y = y
    def add(self):
      return self.x + self.y


然后,你可以通过以下方式创建一个新的C类的实例:

c = C(2, 3)


现在,c是C类的一个实例,你可以调用add方法来添加x和y:

print(c.add())# 输出:5


这个错误是因为你在定义类的初始化方法时使用了_init_,而Python期望的是__init__。这是一个常见的错误,很容易修复。
请注意,本回答来自GPT-4
如果问题已经解决,请设置最佳答案

Mike_python小 发表于 2023-10-20 20:15:28

你的代码中出现了一个拼写错误。类的初始化方法应该是 __init__,而不是 _init_。

修改后的代码如下所示:


class C:
    def __init__(self, x, y):
      self.x = x
      self.y = y

    def add(self):
      return self.x + self.y


你可以通过调用 C(2, 3) 来创建一个 C 类的对象。这样就可以将参数 2 和 3 分别传递给 __init__ 方法中的 x 和 y 参数。

请注意,Python 中的初始化方法名称应该是双下划线开头和结尾,即 __init__。这个方法会在创建类的实例时自动调用,并且可以在其中进行一些初始化操作。

修改后的代码示例中,你可以通过以下方式来创建类的实例并进行计算:


c = C(2, 3)
print(c.add())# 输出结果为 5


上述代码将输出结果为 5,因为 add 方法对 x 和 y 进行了相加运算。


球一个最佳答案谢谢啦!这对我非常重要!{:10_254:}{:10_254:}{:10_254:}

呐各蓝仁 发表于 2023-10-20 20:19:07

多谢大家指点,我明白了
页: [1]
查看完整版本: python问题