Python 面向对象

Posted Crazy丶迷恋

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python 面向对象相关的知识,希望对你有一定的参考价值。

静态方法

只是名义上归类管理,实际上在静态方法里访问不了类或实例中的任何属性

通过@staticmethod装饰器即可把其装饰的方法变为一个静态方法,什么是静态方法呢?其实不难理解,普通的方法,可以在实例化后直接调用,并且在方法里可以通过self.调用实例变量或类变量,但静态方法是不可以访问实例变量或类变量的,一个不能访问实例变量和类变量的方法,其实相当于跟类本身已经没什么关系了,它与类唯一的关联就是需要通过类名来调用这个方法

class Dog(object):
    def __init__(self,name):
        self.name = name
    @staticmethod   #实际上跟类没什么关系了
    def eat(self):
        print("%s is eating %s" %(self.name,"bb"))

d = Dog("aa")
d.eat(d)

类方法  

类方法通过@classmethod装饰器实现,类方法和普通方法的区别是, 类方法只能访问类变量,不能访问实例变量

class Dog(object):
    n = 333
    def __init__(self,name):
        self.name = name
    #@staticmethod   #实际上跟类没什么关系了
    @classmethod
    def eat(self):
        print("%s is eating %s" %(self.n,"bb"))

    def talk(self):
        print("%s is talking" %self.name)
d = Dog("aa")
d.eat()

  

以上是关于Python 面向对象的主要内容,如果未能解决你的问题,请参考以下文章

python之路之前没搞明白4面向对象(封装)

Python面向对象学习之八,装饰器

python:第二部分:面向对象:面向对象object orinted

Python 面向对象

面向面试编程代码片段之GC

面向对象编程其实很简单——Python 面向对象(初级篇)