窝窝头传奇 发表于 2021-5-2 15:37:17

修改程序

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 15:37:52

修改一下 能运行

wp231957 发表于 2021-5-2 15:48:35

self只有实例化时才不用输入,否则要传参的

窝窝头传奇 发表于 2021-5-2 15:52:44

wp231957 发表于 2021-5-2 15:48
self只有实例化时才不用输入,否则要传参的

帮忙写一下 程序

suchocolate 发表于 2021-5-2 16:11:35

题目发出来

窝窝头传奇 发表于 2021-5-2 16:56:42

据此修改程序

窝窝头传奇 发表于 2021-5-2 16:57:51

suchocolate 发表于 2021-5-2 16:11
题目发出来

发出来了,原题只是问原因,我想改成对的程序,但不会改。。。。

伏惜寒 发表于 2021-5-2 17:12:34

窝窝头传奇 发表于 2021-5-2 16:57
发出来了,原题只是问原因,我想改成对的程序,但不会改。。。。

class MyClass:
      name = 'FishC'
      def myFun(): #去掉self,或者改成self=0
                print("Hello FishC!")

伏惜寒 发表于 2021-5-2 17:13:43

窝窝头传奇 发表于 2021-5-2 16:57
发出来了,原题只是问原因,我想改成对的程序,但不会改。。。。

错误原因就是没有传递参数,把self参数去掉或者设置默认参数self=0都可以解决问题

窝窝头传奇 发表于 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 了

窝窝头传奇 发表于 2021-5-2 17:31:34

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

我这样理解是不是对?

伏惜寒 发表于 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的,你可以把他理解成理解成默认参数

窝窝头传奇 发表于 2021-5-3 17:14:41

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

我知道了 谢谢啊
页: [1]
查看完整版本: 修改程序