zoukankan      html  css  js  c++  java
  • 静态方法、类方法、属性方法

    静态方法:

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

    @staticmethod #把eat方法变为静态方法
    def eat(self): #实际上跟类没什么关系了,eat中self是个需要传递的普通参数,不是实例本身,跟__init__中的self不同
    print("%s is eating %s" %(self.name,'dd'))

    def talk(self):
    print("%s is talking"% self.name)
    d = Dog("ChenRonghua")
    d.eat(d)
    d.talk()
    @staticmethod 作用就是把类内方法中的参数变为普通参数

    -------------------------------------------------------------------------------------------
    类方法:

    class Dog(object):
    name = "huazai"
    def __init__(self,name):
    self.name = name

    @classmethod #调用变量,都是类变量,不是实例的变量
    def eat(self):
    print("%s is eating %s" %(self.name,'dd')) #name 是huazai

    def talk(self):
    print("%s is talking"% self.name)

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

    @classmethod 就是让方法调用的变量是类变量
    def talk(self) 中self的值不是实例名,是类名Dog ,一般这样写def talk(cls)

    参考:
    https://www.cnblogs.com/patrick0715/p/6031321.html
    -------------------------------------------------------------------------------------------
    属性方法:

    class Dog(object):
    '''这个类是描述狗这个对象的'''

    def __init__(self,name):
    self.name = name
    self.__food = None

    @property #把一个方法变为一个属性
    def eat(self):
    print("%s is eating %s" %(self.name,self.__food))

    @eat.setter #eat 赋值调用下面这个方法
    def eat(self,food): #这个方法名称可以和 @eat.setter 中eat不一样,为了保证不产生歧义,保持一致
    print("set to food:",food)
    self.__food = food

    @eat.deleter #删除eat调用下面这个方法
    def eat(self): #这个方法名称可以和 @eat.setter 中eat不一样,为了保证不产生歧义,保持一致
    del self.__food
    print("删完了")

    def talk(self):
    print("%s is talking"% self.name)
    d = Dog("ChenRonghua")
    d.eat
    d.eat = '包子'    #赋值eat
    d.eat
    del d.eat        #删除eat
    #d.eat
  • 相关阅读:
    C++ Compress Floder
    C语言: 两个int变量相除,结果保留两位小数
    过滤Windows文件名中的非法字符
    判断两个vector是否相等
    顶级操盘手是怎样准确把握入场时机的
    短线黑马选股绝技
    短线黑马选股绝技 一
    每日一招:短线炒股实用技巧
    高抛低吸T+0操作要领(目前行情短线炒作的必备技能)
    如何买开盘即涨停的个股
  • 原文地址:https://www.cnblogs.com/lighthouse/p/9667371.html
Copyright © 2011-2022 走看看