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


    静态方法:

    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
  • 相关阅读:
    python unittest--TestSuit类--通过unittest.TestSuite()类直接构建,或者通过TestSuite实例的addTests、addTest方法构建
    Cannot read property 'toLowerCase' of undefined
    Vue 中登录功能的简单实现
    git 常用命令
    js 锚点定位的简单方法
    Vue element-ui 使用Loading服务按需引入的坑
    防抖 节流
    element-ui 日期选择器-开始结束日期选择限制
    vue elment-ui 对navTab导航组件封装
    vue 监听窗口变化对页面部分元素重新渲染
  • 原文地址:https://www.cnblogs.com/lighthouse/p/9667371.html
Copyright © 2020-2023  润新知