zoukankan      html  css  js  c++  java
  • Python 面向对象2

    静态方法

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

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

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

    静态方法属于类

    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  # 到这步就报错了
  • 相关阅读:
    实验四 决策树
    实验三 朴素贝叶斯
    实验2 k近邻
    实验一
    实验三
    第二次实验
    实验一
    ATM取款系统
    流程图与活动图的区别与联系
    第一次随笔
  • 原文地址:https://www.cnblogs.com/chen1930/p/6078954.html
Copyright © 2011-2022 走看看