zoukankan      html  css  js  c++  java
  • 关于python的类方法、实例方法和静态方法区别

    python的类方法需要在方法前面加装饰器:@classmethod ,静态方法是在方法前面加装饰器:@staticmethod。

    类方法、类属性是属于类自身,属于类自身的命名空间,和实例方法、实例属性不在一个命名空间下。

    实例对象和类都可以直接调用类方法、实例方法和静态方法,区别在于:在类方法和静态方法内部不能调用实例属性。

    class Base:
        def __init__(self):
            print "base begin..."
        def prints(self):
            print "print base..."
    
    class Base1:
        def __init__(self):
            print "base1 begin..."
        def printss(self):
            print "print base1..."
    
    class Base2(Base1,Base):
        names = 'li'
        def __init__(self,name):
            self.name = name
        def prints(self):
            print "print objectmethod..."+self.name
        @staticmethod
        def printStatic():
            print "print staticmethod..."
        @classmethod
        def printClass(cls):
            print "print classmethod"+cls.names
    
    
    b = Base2('king')
    b.prints()
    b.printClass()
    b.printStatic()
    print b.names
    Base2('jim').printStatic()
    Base2('jim').printClass()
    Base2('jim').prints()
  • 相关阅读:
    Python基础学习Day2
    Python基础学习
    字符串
    function对象
    GCN入门理解
    L1、L2正则化详解
    Matplotlib数据可视化基础
    sklearn 中模型保存的两种方法
    一文弄懂神经网络中的反向传播法——BackPropagation
    seaborn可视化
  • 原文地址:https://www.cnblogs.com/phpzhou/p/5220761.html
Copyright © 2011-2022 走看看