一、类和实例的调用情况
1.新建一个类,包含普通方法、实例方法、静态方法、类方法
class TestMethod:
def fun():
print('fun')
def funSelf(self):
self.name = 123
print(self.name)
@staticmethod
def funStatic():
print('static method')
@classmethod
def funClass(cls):
print('class method -->',cls.__name__)
test = TestMethod()
id(test)
>> 1932039382184
id(TestMethod)
>> 1932015173784
2.调用普通方法
test.fun()
>> ---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
<ipython-input-5-e78084471afa> in <module>
----> 1 test.fun()
TypeError: fun() takes 0 positional arguments but 1 was given
TestMethod.fun()
>> fun
3.调用实例方法
test.funSelf()
>> 123
TestMethod.funSelf()
>> ---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
<ipython-input-8-916349941894> in <module>
----> 1 TestMethod.funSelf()
TypeError: funSelf() missing 1 required positional argument: 'self'
4.调用静态方法
test.funStatic()
>> static method
TestMethod.funStatic()
>> static method
5.调用类方法
test.funClass()
>> class method --> TestMethod
TestMethod.funClass()
>> class method --> TestMethod
结论:
从上面可以看出:
1.实例方法只能由实例调用,并且一般使用self作为实例本身在类实例化的时候进行传参;
2.普通方法只能由类调用,不能由实例调用,可以在类内部被其他函数调用;
3.静态方法和类方法都可以由类和实例调用。
——————————————————
认识较为初级,等待砖头并补充!