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
  • 相关阅读:
    jQuery EasyUI dialog 居中最简单的办法
    Sql Server 查看存储过程最后修改时间
    MyEclipse格式化JSP代码,其中Javascript无法格式化的原因
    MyEclipse格式化JSP代码导致Java表达式<%= %>自动换行的解决办法
    重新格式化hadoop的namenode导致datanode无法启动的最简单解决办法
    端口映射
    你以为的Jquery选择器是什么样子的?
    JS&Jquery基础之窗口对象的关系总结
    JS&Jquery基础之对象和数组以及类型转换
    SQL Server关于AlwaysOn的理解
  • 原文地址:https://www.cnblogs.com/lighthouse/p/9667371.html
Copyright © 2011-2022 走看看