类的三种方法(静态方法,类方法,属性方法)

Posted python我的最爱

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了类的三种方法(静态方法,类方法,属性方法)相关的知识,希望对你有一定的参考价值。

1.(静态方法)

class Dog(object):
      def __init__(self, name):
         self.name = name
      @staticmethod
      def name(obj):
          print(‘%s is name‘%obj)


Dog.name(‘ronghua‘)

@staticmethod静态方法与类本身不存在关系,只是调用的时候需要加类名,不可对类中的其他变量进行操作 

2.(类方法)

class Dog(object):
    name = ‘alex‘
    def __init__(self, name):
         self.name = name


   @classmethod
    def eat(self):
         print(‘%s is eating‘%self.name)


dog = Dog(‘ronghua‘)

dog.eat()

@classmethod类方法只调用类里面的变量,不调用实例变量

3.(属性方法)

class Dog(object):
      def __init__(self, name):
          self.name = name
          self.__foods = None

       @property                 #定义属性方法
       def eat(self):
            print(‘%s is eating %s‘%(self.name, self.__foods))

       @eat.setter               #属性方法添加参数
       def eat(self, food):
             self.__foods = food
             print(‘%s is eating %s‘%(self.name, self.__foods))
       @eat.deleter            #属性方法的删除
        def eat(self):
             del self.__foods

 

dog = Dog(‘shuhua‘)

dog.eat           这是属性变量,因此调用时不需要()

dog.eat = ‘包子‘   #传入参数

dog.eat

del dog.eat     #属性变量中的删除

dog.eat     #这里会出现报错,因为不存在self.__foods 变量

 

以上是关于类的三种方法(静态方法,类方法,属性方法)的主要内容,如果未能解决你的问题,请参考以下文章

获取class对象的三种方法以及通过Class对象获取某个类中变量,方法,访问成员

如何理解类的三种权限字段和静态字段?

JavaSE7基础 类中 调用静态成员方法的三种方法

python类的三种方法

获得类的字节码对象的三种方式

JavaSE7基础 调用静态成员变量的三种方法