037类与对象疑问求解
class MyClass:name = 'FishC'
def myFun(self):
print("Hello FishC!")
print(MyClass.name)
# m = MyClass()
# m.myFun()
MyClass.myFun()
这段代码就会报错,报错结果为:
TypeError: myFun() missing 1 required positional argument: 'self'
缺少一个self,可是这个self往哪加呢?怎么加入一个self才变为正确的呢?
------------------------------------------------------------------------------------------
另外一种情况:
class MyClass:
name = 'FishC'
def myFun(self):
print("Hello FishC!")
print(MyClass.name)
m = MyClass()
m.myFun()
# MyClass.myFun()
这个却能运行成功,结果如下:
FishC
Hello FishC!
-----------------------------------------------------------------------------------------
求解答一下,为什么第一种情况就不可以,第二种情况就可以,正确访问方法的操作又是什么? 第二种情况中,由于是通过类调用实例方法,所以要手动传入一个 MyClass 的实例,所以先创建一个MyClass 的实例 m,然后再作为参数传进去:
class MyClass:
name = 'FishC'
def myFun(self):
print("Hello FishC!")
print(MyClass.name)
m = MyClass()
# m.myFun()
MyClass.myFun(m) zltzlt 发表于 2020-8-12 16:05
第二种情况中,由于是通过类调用实例方法,所以要手动传入一个 MyClass 的实例,所以先创建一个MyClass 的 ...
懂了,直接通过类来访问实例是不行的,要通过创建一个实例来调用实例,
页:
[1]