python:类的静态方法,类方法,属性方法

时间:2021-11-15 19:28:42
#!usr/bin/env python
# -*- coding:utf-8 -*-

__author__ = "Samson"

class Dog(object):
def __init__(self,name):
self.name = name
#@staticmethod#静态方法,实际*问不了类和实例的任何属性,名义上归类管理
#@classmethod#类方法,只能访问类变量,不能访问实例变量
@property#把一个方法变成静态属性,可以隐藏实现细节(不是方法,所以应该当属性使用)
    def eat(self):
print("%s is eating %s" %(self.name,"dd"))
@eat.setter#修改eat方法,d.eat = "baozi"会触发该方法
def eat(self,food):
print("set to food:",food)
@eat.deleter#用于删除类的方法,del d.eat会触发该方法
def eat(self):
del self.name
print("删完了")

d = Dog("samson")
d.eat
d.eat = "baozi"
del d.eat
d.eat #直接报错