> func1") def func2(cls): print(">> func2") d">

怎么调用类中的成员方法

怎么调用类中的成员方法

举一个例子简单介绍类中的成员方法的调用方式

# ### 类中的成员方法怎么调用

class MyClass1:

def func1(self):

print(">> func1")

def func2(cls):

print(">> func2")

def func3(self):

print("------------func3开始------------")

# self是类中的万能对象,在类中使用self调用类自己的成员方法时,不需要额外传参self或cls,可直接调用

self.func1()

self.func2()

self.func5()

self.func6()

MyClass1.func1(self)

MyClass1.func2(MyClass1)

# self.func4() # 这里会自动传参类对象self,但是func4不接受任何参数,所以会报错

MyClass1.func4()

print("------------func3结束------------")

def func4(): # 这样写其实不合乎规范,因为对象是没法调用这个方法的,但是运行时不会报错

print(">> func4")

@staticmethod # 静态方法装饰器

def func5():

print("静态方法>> func5")

@classmethod # 绑定类方法装饰器

def func6(cls):

print("绑定到类的方法>> func6")

# 实例化类对象

obj1 = MyClass1()

# 两种方式调用func1函数,

obj1.func1() # 对象调用func1,自动传参obj1类对象

MyClass1.func1(obj1) # 类调用func1,需要手动传参obj1类对象

# 查看类中的调用

obj1.func3()

MyClass1.func2(MyClass1) # 类调用func2,需要手动传参MyClass1类

# obj1.func4() # 对象调用func4,自动传参obj1类对象,但是func4不接受任何参数,所以会报错,所以对象是没法直接调用func4函数的

MyClass1.func4() # 类调用func4,原本没有参数,不需要传参

"""调用静态方法,用类或对象调用都不需要传参,定义静态方法时也不要有self和cls参数,就像模块方法一样直接调用"""

MyClass1.func5()

obj1.func5()

"""用类调用调用绑定类方法会自动传参MyClass1类,定义绑定类方法时需要有参数cls"""

MyClass1.func6()

obj1.func6() # 对象也可以调用,会自动传参MyClass1类,不用额外传参

# 打印结果

"""

>> func1

>> func1

------------func3开始------------

>> func1

>> func2

静态方法>> func5

绑定到类的方法>> func6

>> func1

>> func2

>> func4

------------func3结束------------

>> func2

>> func4

静态方法>> func5

静态方法>> func5

绑定到类的方法>> func6

绑定到类的方法>> func6

"""

# 调用类中的成员属性就简单很多了,直接调用不用考虑传参

相关内容

48岁杨坤:住进豪宅之后的日子
怎样获得免费office365

48岁杨坤:住进豪宅之后的日子

🕒 07-07 👁️ 2834
小米、爱立信达成许可协议,5年专利诉讼落下帷幕
怎样获得免费office365

小米、爱立信达成许可协议,5年专利诉讼落下帷幕

🕒 08-06 👁️ 215
你们这些玩音乐的为什么都喜欢留长发?
北海365信息分类

你们这些玩音乐的为什么都喜欢留长发?

🕒 07-18 👁️ 1683