鱼C论坛

 找回密码
 立即注册
查看: 2395|回复: 4

[已解决]python问题

[复制链接]
发表于 2023-10-20 20:14:43 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

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

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


最佳答案
2023-10-20 20:15:00
问题出在类的构造方法上。在Python中,构造方法应该使用双下划线来定义,即 __init__ 而不是 _init_ 。修改代码如下:

  1. class C:
  2.     def __init__(self, x, y):
  3.         self.x = x
  4.         self.y = y

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

  7. c = C(2, 3)
复制代码


这样就可以正确地创建 C 类的实例了。
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2023-10-20 20:15:00 | 显示全部楼层    本楼为最佳答案   
问题出在类的构造方法上。在Python中,构造方法应该使用双下划线来定义,即 __init__ 而不是 _init_ 。修改代码如下:

  1. class C:
  2.     def __init__(self, x, y):
  3.         self.x = x
  4.         self.y = y

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

  7. c = C(2, 3)
复制代码


这样就可以正确地创建 C 类的实例了。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-10-20 20:15:19 | 显示全部楼层
你的问题是在Python类的初始化方法中的一个常见错误。在Python中,类的初始化方法应该是__init__,而不是_init_。你的代码应该如下所示:

  1. class C:
  2.     def __init__(self, x, y):
  3.         self.x = x
  4.         self.y = y
  5.     def add(self):
  6.         return self.x + self.y
复制代码


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

  1. c = C(2, 3)
复制代码


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

  1. print(c.add())  # 输出:5
复制代码


这个错误是因为你在定义类的初始化方法时使用了_init_,而Python期望的是__init__。这是一个常见的错误,很容易修复。
请注意,本回答来自GPT-4
如果问题已经解决,请设置最佳答案
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-10-20 20:15:28 | 显示全部楼层
你的代码中出现了一个拼写错误。类的初始化方法应该是 __init__,而不是 _init_

修改后的代码如下所示:
  1. class C:
  2.     def __init__(self, x, y):
  3.         self.x = x
  4.         self.y = y
  5.     def add(self):
  6.         return self.x + self.y
复制代码

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

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

修改后的代码示例中,你可以通过以下方式来创建类的实例并进行计算:
  1. c = C(2, 3)
  2. print(c.add())  # 输出结果为 5
复制代码

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


球一个最佳答案谢谢啦!这对我非常重要!
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-10-20 20:19:07 | 显示全部楼层
多谢大家指点,我明白了
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-4-23 01:28

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表