首页 > 其他 > 详细

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

时间:2018-05-28 20:04:57      阅读:179      评论:0      收藏:0      [点我收藏+]

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 变量

 

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

原文:https://www.cnblogs.com/my-love-is-python/p/9101925.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!