• 静态方法、类方法、属性方法


    静态方法:

    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
  • 相关阅读:
    表达式树
    二叉查找树
    二叉树的先中后序遍历
    利用树的先序和后序遍历打印 os 中的目录树
    栈应用(中缀表达式转后缀表达式并计算后缀表达式的值)
    C语言的运算符的优先级与结合性+ASCII表
    算法运行时间中的对数
    c++ primer 第三章 标准库类型
    C++ premier 中文版 学习笔记(第五章 表达式)
    使用applescript脚本方式以管理员权限运行
  • 原文地址:https://www.cnblogs.com/lighthouse/p/9667371.html
Copyright © 2020-2023  润新知