python之类的成员(方法)

 

class Foo:
    def bar(self):
        print('bar')

obj = Foo()
obj.bar()

# obj = Foo()
# Foo.bar(obj)

方法:

普通方法:保存在类中,由对象来调用(上面代码中两个方法都可以,但是不管是用对象调用还是用类调用,都要首先定义一个对象,而且一般都用第一种方法调用),self参数是对象。

静态方法:保存在类中,由类直接调用,并且不用self参数

类方法:保存在类中,由类直接调用,cls参数是当前类

class Foo:
    def bar(self):
        print('bar')

    # 加装饰器装饰后,变成静态方法,self就不是必须的了
    @staticmethod
    def sta():
        print('123')

    @staticmethod
    def stat(a1, a2):
        print(a1, a2)

Foo.sta()  # 123
Foo.stat(1, 2)  # 1 2
class Foo:
    def bar(self):
        # self是对象
        print('bar')

    # 加装饰器装饰后,变成静态方法,self就不是必须的了
    @staticmethod
    def sta():
        print('123')

    @staticmethod
    def stat(a1, a2):
        print(a1, a2)

    @staticmethod
    def classmd(cls):
        # cls是类名,不依赖对象
        print(cls)
        print('classmd')


Foo.classmd(Foo)
# <class '__main__.Foo'>
# classmd

应用场景:

如果对象中需要保存一些值,执行某功能时需要使用对象中的值,用普通方法。

不需要任何对象中的值时,用静态方法。(类方法没有太大的用处,它的功能可以通过静态方法实现)

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章