zoukankan      html  css  js  c++  java
  • 静态方法,类方法,属性方法

    1.静态方法

    1.作用:静态方法可以更好的组织代码,防止代码量增大后变得比较混乱。
    
    2.特性:静态方法只是名义上的归类管理,实际上在静态方法里访问不了类或实例中的任何属性。
    
    2.静态方法的应用场景:
    2.1) 我们要写一个只在类中运行而不在实例中运行的方法,经常有一些跟类有关系的功能但是在运行时又需要实例和类参与的情况下需要用到静态方法
    2.2) 比如更改环境变量或者修改其他类的属性等能用到静态方法
    
    3.调用方式:既可以直接被类直接调用,也可以通过实例调用
    
    class Dog(object):
        def __init__(self,name):
            self.name = name
        @staticmethod
        def eat():
            print("I am a static method")
    d = Dog("ChenRonghua")
    d.eat()                     #方法1:使用实例调用
    Dog.eat()                   #方法2:使用类直接调用
    

    2.类方法

    1.作用:无需实例化直接被类调用
    
    2.特性:类方法只能访问类变量,不能访问实例变量
    
    3.类方法使用场景:当我们还为创建实例,但是需要调用类中的方法
    
    4.调用方式: 既可以被类直接调用,也可以通过实例调用
    

    3.属性方法

    1.作用:属性方法把一个方法变成一个属性,隐藏了实现细节,调用时不必加括号直接d.eat即可调用self.eat()方法
    
    class Dog(object):
        def __init__(self, name):
            self.name = name
    
        @property
        def eat(self):
            print(" %s is eating" % self.name)
    d = Dog("ChenRonghua")
    d.eat()
    # 调用会出以下错误, 说NoneType is not callable, 因为eat此时已经变成一个静态属性了, 
    # 不是方法了, 想调用已经不需要加()号了,直接d.eat就可以了
    
  • 相关阅读:
    python实现决策树
    ag 命令的帮助文档
    Linux rsync 命令学习
    常用数学符号读法及其含义
    Python 数据分析
    Django 创建项目笔记
    Python 实用技巧
    Python 必备好库
    Pytest 简明教程
    Python 打包中 setpy.py settuptools pbr 的了解
  • 原文地址:https://www.cnblogs.com/wonderlandlove/p/12845802.html
Copyright © 2011-2022 走看看