1930251516

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

静态方法

静态方法相当于函数,可以不创建对象直接引用

如果在类里面用静态方法,相当于函数,可以不创建对象,直接是用类里面的方法,你就当它是函数。

静态方法名义上归类管理,实际上静态方法访问不了类或实例种的任何属性

静态方法属于类

class Foo:
    def __init__(self):
        pass

    @staticmethod
    def func(): # 去掉self
        print('我是静态方法')

Foo.func()

类方法

1、类方法只能访问类变量,不能访问实例变量

2、类方法至少要有一个参数,cls

3、类方法是用类进行调用

 

class Foo:
    @classmethod
    def f1(cls):
        print(cls)

Foo.f1()

 

属性方法

1、把一个类里面的方法,变化成字段

class Foo:
    def __init__(self, name):
        self.name = name

    @property
    def fun(self):
        print('%s是做属性例子' % self.name)


f = Foo('tom')
f.fun #调用时候去掉括号

2、由于调用时候没有括号,那就不能在有参数的方法进行设置

3、属性赋值

class Foo:
    def __init__(self, name):
        self.name = name
        self.value = None

    @property
    def fun(self):
        print('%s是做属性例子' % self.value)

    @fun.setter
    def fun(self, value):  # 名字必须一致,位置必须在后边
        self.value = value

f = Foo('tom')
f.fun
f.fun = 'ccccc'
f.fun

4、删除

class Foo:
    def __init__(self, name):
        self.name = name
        self.value = None

    @property
    def fun(self):
        print('%s是做属性例子' % self.value)

    @fun.setter
    def fun(self, value):  # 名字必须一致,位置必须在后边
        self.value = value

    @fun.deleter # 删除
    def fun(self):
        del self.value
        print('del')


f = Foo('tom')
f.fun
f.fun = 'ccccc'
f.fun
del f.fun
f.fun  # 到这步就报错了

 

posted on 2016-12-02 14:45  1930251516  阅读(101)  评论(0编辑  收藏  举报