码迷,mamicode.com
首页 > 编程语言 > 详细

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

时间:2018-06-26 17:21:34      阅读:199      评论:0      收藏:0      [点我收藏+]

标签:return   一个   函数调用   通过   world   python   ram   TE   类的属性   

#静态属性的作用是吧类的方法隐藏起来(可以把背后的逻辑隐藏起来),让用户感觉是在电泳属性,而不是方法 class Static:     attribute='属性'     def __init__(self,parameter1,parameter2,parameter3):         self.parameter1 = parameter1         self.parameter2 = parameter2         self.parameter3 = parameter3     def test(self):         return ('test',self.parameter1)     @property     def print_static(self):         print(Static.attribute)         return ('这个是静态属性的结果 %s %s %s'%(self.parameter1,self.parameter2,self.parameter3)) s=Static('hello','world','!') print(s.test()) print(s.print_static)

静态方法:

#静态方法只是名义上归类管理,不能使用类变量和实例变量,是类的工具包
#我个人的理解是扯虎皮做大旗,静态方法只是借用类的大树下的一个独立函数

class Static:
    attribute='属性'
    def __init__(self,parameter):
        self.parameter=parameter
    def test(self):
        return ('test',self.parameter)

    @staticmethod
    def print_static(a,b,c):
        print(Static.attribute)
        return ('这个是静态方法',a+b+c)

s=Static('hello')
print(s.test())
print(Static.print_static(2,4,6))

类方法:

'''
@classmethod 类方法是通过类里面的函数调用类本身的属性
'''
class Class():
    attribute='类的属性'#类的属性
    def __init__(self,parameter): #这里的self是一个对象
        self.parameter=parameter #实例的属性
    def test(self):
        print(self)
        return  ('类方法测试调用',self.parameter)

    @classmethod#类方法只能调用类属性,不能调用实例属性
    def print_class(cls): #这里的cls是一个类
        print(cls)
        return ('通过类调用类的属性',cls.attribute)

x=Class('实例的属性')
print(x.test())
print(x.parameter)
print(Class.print_class())
print(Class.attribute)


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

标签:return   一个   函数调用   通过   world   python   ram   TE   类的属性   

原文地址:http://blog.51cto.com/853056088/2132884

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!