Python 静态方法,类方法,属性方法

方法的使用

 

 

静态方法

- 只是名义上归类管理,实际上在静态方法里访问不了类或实例中的任何属性。

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

    # 静态方法实际上根类没什么关系,单纯变成一个函数。
    @staticmethod
    def eat(self,food):
        print("%s is eating %s" %(self.name,food))

 

 

类方法

- 只能访问类变量,不能访问实例变量

class Dog(object):
    n = 333
    def __init__(self,name):
        self.name = name
   @classmethod   #只能访问类变量
    def eat(self,food):
        print("%s is eating %s" %(self.n,food))

使用场景:只能用写死的类变量。

 

 

属性方法

- 把一个方法变成一个静态属性。

class Dog(object):
    n = 333
    def __init__(self,name):
        self.name = name
    @property #把一个方便变为静态属性
    def eat(self):
        print("%s is eating %s" %(self.name,"dd"))
d = Dog("ChenRonghua")
d.eat

 

属性方法的用法

# 创建属性方法: @property
# 修改属性方法:  @eat.setter
# 删除属性方法: @eat.deleter

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 #属性方法修改,添加元素
    def eat(self,food): #创建相同名称函数的方法名
        print("set to food:",food)
        self.__food = food

    @eat.deleter #属性方法删除
    def eat(self):
        del self.__food
        print("删完了")

d = Dog("ChenRonghua")  #实例化
d.eat  #不添加元素,输出
d.eat = "baozi" #赋值元素,需要两个同名函数
d.eat   #赋值后输出
#输出结果
#ChenRonghua is eating None
#set to food: baozi
#ChenRonghua is eating baozi
#删完了

使用场景:对用户来讲不需要关心后台的工作,只需要一步实,例名.属性 执行就可以。

posted @ 2017-11-13 16:39  kevin.Xiang  阅读(3758)  评论(0编辑  收藏  举报