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
#删完了

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

优质内容筛选与推荐>>
1、继承ViewGroup研究(3)--在XML向ViewGroup中添加组件
2、典型用户和场景
3、oracle中substr() instr() 用法
4、Sass笔记
5、Ubuntu 12.04 Qt5.1.0 安装


长按二维码向我转账

受苹果公司新规定影响,微信 iOS 版的赞赏功能被关闭,可通过二维码转账支持公众号。

    阅读
    好看
    已推荐到看一看
    你的朋友可以在“发现”-“看一看”看到你认为好看的文章。
    已取消,“好看”想法已同步删除
    已推荐到看一看 和朋友分享想法
    最多200字,当前共 发送

    已发送

    朋友将在看一看看到

    确定
    分享你的想法...
    取消

    分享想法到看一看

    确定
    最多200字,当前共

    发送中

    网络异常,请稍后重试

    微信扫一扫
    关注该公众号





    联系我们

    欢迎来到TinyMind。

    关于TinyMind的内容或商务合作、网站建议,举报不良信息等均可联系我们。

    TinyMind客服邮箱:support@tinymind.net.cn