• Python普通方法、静态方法、类方法


    开始

    # -*-coding:utf-8-*-
    # 普通方法,类方法,静态方法的区别
    
    __metaclass__ = type
    
    
    class Tst:
        name = 'tst'
    
        data = 'this is data'
    
        # 普通方法
        def normalMethod(self, name):
            print self.data, name
    
        # 类方法,可以访问类属性
        @classmethod
        def classMethod(cls, name):
            print cls.data, name
    
        # 静态方法,不可以访问类属性
        @staticmethod
        def staticMethod(name):
            print name

    测试

    • 三种方法都可以通过实例来调用,但是静态方法和类方法无法访问实例属性,所以更改了tst.data仅对普通方法起了作用
    tst = Tst()
    tst.data = 'this is new'
    tst.normalMethod('name')
    tst.staticMethod('name')
    tst.classMethod('name')
    
    #结果
    this is new name
    name
    this is data name

    区别

    • 普通方法不能通过类名调用,但是静态方法和类方法是可以的
    # error普通方法必须通过实例调用
    # Tst.normalMethod('name')
    Tst.classMethod('name')
    Tst.staticMethod('name')
    
    #结果
    this is data name
    name

    总结

    • 普通方法,可以通过self访问实例属性
    def normalMethod(self,data)
    • 类方法,可以通过cls访问类属性
    @classmethod
    def classMethod(cls,data)
    • 静态方法,不可以访问,通过传值的方式
    @staticmethod
    def staticMethod(data)
  • 相关阅读:
    「读书感悟」三体
    「PLC」PLC基本编程
    利用一个Demo说明Castle+NHibernate的实现
    采用jquery实现简单的计算器
    Html+css+Jquery模拟电影院购票
    Jquery实现简单的导航单并且经常使用
    H5的video元素实现的Demo
    JQuery编写的定时器实现时钟
    Castle.net
    1056. 组合数的和(15)
  • 原文地址:https://www.cnblogs.com/fmgao-technology/p/9172978.html
Copyright © 2020-2023  润新知