爱骆骆联盟盟主 发表于 2020-3-23 22:01:12

关于类的方法的调用问题

请问要调用MyClass中的myFun(),应当怎么调用呢??

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'
>>>

一个账号 发表于 2020-3-23 22:05:17

本帖最后由 一个账号 于 2020-3-23 22:07 编辑

找个东西代替 self:

>>> class MyClass:
      name = 'FishC'
      def myFun(self):
                print("Hello FishC!")

>>> myclass = MyClass()
>>> MyClass.myFun(myclass)
Hello FishC!

爱骆骆联盟盟主 发表于 2020-3-23 22:08:43

一个账号 发表于 2020-3-23 22:05
找个东西代替 self:

大佬可不可以举个例子呢?

一个账号 发表于 2020-3-23 22:09:36

爱骆骆联盟盟主 发表于 2020-3-23 22:08
大佬可不可以举个例子呢?

下面不是有代码吗?

爱骆骆联盟盟主 发表于 2020-3-23 22:35:36

一个账号 发表于 2020-3-23 22:09
下面不是有代码吗?

那么请问要怎么如果该类有属性的话,要如何查看其属性呢?

jackz007 发表于 2020-3-23 22:40:42

>>> class MyClass:
      name = 'FishC'
      def myFun(self):
                print("Hello FishC!")

               
>>> myclass = MyClass()
>>> myclass . myFun()
Hello FishC!
>>>

sunrise085 发表于 2020-3-23 22:41:04

你所定义的类中name是静态成员变量。是能够直接使用类名调用的,它不属于类的任何一个对象,额但是任何一个该类的对象都能调用静态成员变量。而类的函数,则需要该类实例化的对象调用。
举一个易于理解的例子。假设中国人是一个类,祖国的首都=北京,就是这个类的静态成员变量,不用具体到摸一个人,祖国首都就是北京;但是有一个函数:去他的家乡,这就要具体到某一个人了,需要先实例化一个对象,然后才能去他的家乡。
class MyClass:
    name = 'FishC'
    def myFun(self):
      print("Hello FishC!")

first=MyClass()
second=MyClass()
print(first.name)
MyClass.name='Change'
print(second.name)
页: [1]
查看完整版本: 关于类的方法的调用问题