鱼C论坛

 找回密码
 立即注册
查看: 2476|回复: 12

[已解决]修改程序

[复制链接]
发表于 2021-5-2 15:37:17 | 显示全部楼层 |阅读模式

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

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

x
class MyClass:
        name = 'FishC'
        def myFun(self):
                print("Hello FishC!")
               
>>> MyClass.name
'FishC'
>>> MyClass.myFun()
Traceback (most recent call last):
  File "<pyshell#6>", line 1, in <module>
    MyClass.myFun()
TypeError: myFun() missing 1 required positional argument: 'self'
>>>
最佳答案
2021-5-2 17:13:43
窝窝头传奇 发表于 2021-5-2 16:57
发出来了,原题只是问原因,我想改成对的程序,但不会改。。。。

错误原因就是没有传递参数,把self参数去掉或者设置默认参数self=0都可以解决问题
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2021-5-2 15:37:52 | 显示全部楼层
修改一下 能运行
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-5-2 15:48:35 From FishC Mobile | 显示全部楼层
self只有实例化时才不用输入,否则要传参的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-5-2 15:52:44 | 显示全部楼层
wp231957 发表于 2021-5-2 15:48
self只有实例化时才不用输入,否则要传参的

帮忙写一下 程序
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-5-2 16:11:35 | 显示全部楼层
题目发出来
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-5-2 16:56:42 | 显示全部楼层
据此修改程序
995424906824660349f4ea7ec7135ef.png
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-5-2 16:57:51 | 显示全部楼层

发出来了,原题只是问原因,我想改成对的程序,但不会改。。。。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-5-2 17:12:34 | 显示全部楼层
窝窝头传奇 发表于 2021-5-2 16:57
发出来了,原题只是问原因,我想改成对的程序,但不会改。。。。
class MyClass:
        name = 'FishC'
        def myFun(): #去掉self,或者改成self=0
                print("Hello FishC!")
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-5-2 17:13:43 | 显示全部楼层    本楼为最佳答案   
窝窝头传奇 发表于 2021-5-2 16:57
发出来了,原题只是问原因,我想改成对的程序,但不会改。。。。

错误原因就是没有传递参数,把self参数去掉或者设置默认参数self=0都可以解决问题
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-5-2 17:30:53 | 显示全部楼层
伏惜寒 发表于 2021-5-2 17:13
错误原因就是没有传递参数,把self参数去掉或者设置默认参数self=0都可以解决问题

就是不用写self是因为这个函数是独立的 如果像下面这个例子
class Person:
    def _init_(self,name):
        self.name=name
    def sayhello(self):
        print( 'My name is:',self.name)
这就需要加入self 了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-5-2 17:31:34 | 显示全部楼层
窝窝头传奇 发表于 2021-5-2 17:30
就是不用写self是因为这个函数是独立的 如果像下面这个例子
class Person:
    def _init_(self,name) ...

我这样理解是不是对?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-5-3 11:16:16 | 显示全部楼层
窝窝头传奇 发表于 2021-5-2 17:30
就是不用写self是因为这个函数是独立的 如果像下面这个例子
class Person:
    def _init_(self,name) ...

1.def __init__(self,name):   init方法前后都是两个"_"你只写了一个
2.self在这是用来调用self.name的,你可以把他理解成理解成默认参数
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-5-3 17:14:41 | 显示全部楼层
伏惜寒 发表于 2021-5-3 11:16
1.def __init__(self,name):   init方法前后都是两个"_"你只写了一个
2.self在这是用来调用self.name的 ...

我知道了 谢谢啊
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-1-16 01:48

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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