zoukankan      html  css  js  c++  java
  • 003_python内置的@staticmethod详解

    python中的staticmethod 主要是方便将外部函数集成到类体中,美化代码结构,重点在不需要类实例化的情况下调用方法(类似java的静态方法)

    如果你去掉staticmethod,在方法中加self也可以通过实例化访问方法也是可以集成代码

    1)先看看不使用staticmethod的代码如何写的

    #coding:utf-8
    IND = 'ON'
    def checkind():
        return (IND == 'ON')
    class Kls(object):
        def __init__(self,data):
            self.data = data
        def do_reset(self):
            if checkind():
                print('Reset done for:', self.data)
        def set_db(self):
            if checkind():
                self.db = 'New db connection'
                print('DB connection made for:', self.data)
    ik1 = Kls(12)
    ik1.do_reset()
    ik1.set_db()

    输出=>

    ('Reset done for:', 12)
    ('DB connection made for:', 12)

    2)再看看使用staticmethod的代码,用staticmethod包装的方法可以内部调用,也可以通过类访问或类实例化访问

    #coding:utf-8
    IND = 'ON'
    
    class Kls(object):
        def __init__(self,data):
            self.data = data
        @staticmethod
        def checkind():
            return (IND == 'ON')
        def do_reset(self):
            if self.checkind():
                print('Reset done for:', self.data)
        def set_db(self):
            if self.checkind():
                self.db = 'New db connection'
                print('DB connection made for:', self.data)
    ik1 = Kls(12)
    ik1.do_reset()
    ik1.set_db()
    
    print(ik1.checkind())
    print(Kls.checkind())

    输出==>

    ('Reset done for:', 12)
    ('DB connection made for:', 12)
    True
    True

  • 相关阅读:
    使用httputils上传图片到服务器
    Android与服务器http连接模块代码
    简单的三次登陆和入门级九九乘法表的实现
    简单购物车的实现
    python常见数据类型
    python基础一
    python入门一
    python简介
    day1 java基础语法
    LeftStr函数使用
  • 原文地址:https://www.cnblogs.com/arun-python/p/6366155.html
Copyright © 2011-2022 走看看