python 类方法,静态方法,普通方法的区别

    Python编程 wuya 102次浏览 已收录 0个评论

    类方法:

    class Person:

    # 成员方法:通过对象调用

    def eat(self):

    print(‘能吃是福’)

     

    # 类方法:通过类名调用

    @classmethod

    def test(cls):

    # cls:表示当前类

    print(cls)

     

    # 可以创建对象 或 简单的创建对象

    @classmethod

    def create(cls):

    p = cls()

    p.age = 1   可简洁创建对象,对外提供简易的接口。

    静态方法:

    class Person:

    # 定义静态方法:也是通过类名调用,但是没有第一个表示当前类的参数

    @staticmethod

    def test():

    print(‘静态方法 test’)

     

    形式上(传参)的区别

     

    实例方法隐含的参数为类实例self,而类方法隐含的参数为类本身cls。 静态方法无隐含参数,主要为了类实例也可以直接调用静态方法。

     

    逻辑上的区别:

    类方法被类调用,而且因为传入了参数cls,故也可以由实例来调用,实例方法被实例调用,(普通方法)应该由实例调用,类不能调用。静态方法两者都能调用。

     

    三种方法和属性的关系

    实例方法(普通方法)————随着实例属性的改变而改变

     

    类方法(无论是类调用还是实例调用———都是类属性的值,不随实例属性的变化而变化

     

    静态方法—————不可以访问类属性,故直接输出传入方法的值

     


    学海无涯 , 版权所有丨如未注明 , 均为原创丨转载请注明python 类方法,静态方法,普通方法的区别
    喜欢 (0)
    发表我的评论
    取消评论
    表情 加粗 删除线 居中 斜体 签到

    Hi,您需要填写昵称和邮箱!

    • 昵称 (必填)
    • 邮箱 (必填)
    • 网址