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

时间: 2024-10-12 21:37:07

python内置的@staticmethod详解的相关文章

Python pandas 数据框的str列内置的方法详解

原文链接:http://www.datastudy.cc/to/31 在使用pandas框架的DataFrame的过程中,如果需要处理一些字符串的特性,例如判断某列是否包含一些关键字,某列的字符长度是否小于3等等这种需求,如果掌握str列内置的方法,处理起来会方便很多. 下面我们来详细了解一下,Series类的str自带的方法有哪些. 1.cat() 拼接字符串 例子: >>> Series(['a', 'b', 'c']).str.cat(['A', 'B', 'C'], sep=',

python内置函数封装、解构

一.封装 将多个值使用逗号分割,组合在一起,本质上返回一个元组,只是省掉了小括号 python特有语法,被很多言语学习和借鉴 二.解构 把线性结构的元素解开,并顺序的赋给其他变量 左边接纳的变量数要和右边解开的元素个数一致 举例: >>> lst = [3,5]  >>> a,b = lst  >>> print(a,b)  3 5  >>> 三.python3版本的解构 使用*变量名接收,但不能单独使用 被*变量名收集后组成一个列表

jsp - 9 内置对象config详解

config 该对象是ServletConfig的实例,在jsp页面中比较少用,在Servlet中用处相对较大,因为Servlet需要在web.xml文件中进行配置,可以指定配置参数. eg: web.xml文件: jsp 页面显示 web.xml文件中的 name参数: 使用页面地址直接访问: 使用web.xml文件映射地址访问: 因此,如果希望jsp页面可以获取web.xml配置文件中的配置信息,则必须通过为该jsp配置的路径来访问该页面,因为只有这样访问jsp页面,才能让配置参数起作用.

内置函数图片详解

原文地址:https://www.cnblogs.com/20181013python/p/10015017.html

python基础9 -----python内置函数2

一.python内置所以函数     Built-in Functions     abs() divmod() input() open() staticmethod() all() enumerate() int() ord() str() any() eval() isinstance() pow() sum() basestring() execfile() issubclass() print() super() bin() file() iter() property() tuple

Python中 if __name__ == '__main__': 详解

一个python文件就可以看作是一个python的模块,这个python模块(.py文件)有两种使用方式:直接运行和作为模块被其他模块调用. __name__:每一个模块都有一个内置属性__name__.而__name__的值取决与python模块(.py文件)的使用方式. 如果是直接运行,那么这个模块的__name__值就是“__main__”: 如果是作为模块被其他模块调用,那么这个模块(.py文件)的__name__值就是该模块(.py文件)的文件名,且不带路径和文件扩展名. 参考: ht

python基础9 -----python内置函数

python内置函数1 一.python内所有的内置函数: 二.python内常用的内置函数: 三.python内内置函数详解: 1.数学运算函数: 2.集合类函数: 3.逻辑类函数: 4.映射类函数: 5.IO操作:

Python中的高级数据结构详解

这篇文章主要介绍了Python中的高级数据结构详解,本文讲解了Collection.Array.Heapq.Bisect.Weakref.Copy以及Pprint这些数据结构的用法,需要的朋友可以参考下 数据结构 数据结构的概念很好理解,就是用来将数据组织在一起的结构.换句话说,数据结构是用来存储一系列关联数据的东西.在Python中有四种内建的数据结构,分别是List.Tuple.Dictionary以及Set.大部分的应用程序不需要其他类型的数据结构,但若是真需要也有很多高级数据结构可供选择

Python内置的urllib模块不支持https协议的解决办法

Django站点使用django_cas接入SSO(单点登录系统),配置完成后登录,抛出“urlopen error unknown url type: https”异常.寻根朔源发现是python内置的urllib模块不支持https协议. >>> import urllib>>> urllib.urlopen('http://www.baidu.com')<addinfourl at 269231456 whose fp = <socket._fileo