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
  • 相关阅读:
    Nginx(一)——介绍及安装配置
    Keepalived(二)
    H3C 交换机限速和添加Vlan
    The difference between su and su-
    CentOS7 修改 ssh 文件总结
    华为eNSP模拟器学习(一)
    如何使用Open Live Writer
    Ubuntu 开启远程ssh服务
    CentOS7 禁用firewall防火墙 启用iptables 步骤
    CentOS 7 精简版安装后联网问题
  • 原文地址:https://www.cnblogs.com/lighthouse/p/9667371.html
Copyright © 2011-2022 走看看