我的编程空间,编程开发者的网络收藏夹
学习永远不晚

python中@staticmethod

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

python中@staticmethod


一般来说,要使用某个类的方法,需要先实例化一个对象再调用方法。而使用@staticmethod或@classmethod,就可以不需要实例化,直接类名.方法名()来调用。

这有利于组织代码,把某些应该属于某个类的函数给放到那个类里去,同时有利于命名空间的整洁。


既然@staticmethod和@classmethod都可以直接类名.方法名()来调用,那他们有什么区别呢从它们的使用上来看,

  • @staticmethod不需要表示自身对象的self和自身类的cls参数,就跟使用函数一样。

  • @classmethod也不需要self参数,但第一个参数需要是表示自身类的cls参数。

  •     如果在@staticmethod中要调用到这个类的一些属性方法,只能直接“类名.属性名“或“类名().方法名“。

  •     而@classmethod因为持有cls参数,可以来调用类的属性,类的方法,实例化对象等,避免硬编码。



示例代码如下:

A():
    bar = ():
        ():
        A.bar
        A().foo()


    ():
        .bar
        A.bar
        ().foo()
        A().foo()

A.static_foo()
A.class_foo()


输入结果如下:

static_foo

A.bar= 1

foo

class_foo

cls.bar= 1

A.bar= 1

foo

foo




转自:http://blog.csdn.net/handsomekang/article/details/9615239


免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

python中@staticmethod

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

python中@staticmethod

一般来说,要使用某个类的方法,需要先实例化一个对象再调用方法。而使用@staticmethod或@classmethod,就可以不需要实例化,直接类名.方法名()来调用。这有利于组织代码,把某些应该属于某个类的函数给放到那个类里去,同时有利
2023-01-31

@staticmethod

-----------------------------------------------------------代码部分:class Dog(object): def __init__(self,name): se
2023-01-30

Python函数介绍:staticmethod函数的功能和示例

Python函数介绍:staticmethod函数的功能和示例Python是一种功能强大的编程语言,它具有丰富的内置函数和模块,能够帮助我们轻松完成各种任务。其中一个有用的函数是staticmethod函数。本文将介绍staticmetho
Python函数介绍:staticmethod函数的功能和示例
2023-11-03

怎么使用@Staticmethod、@Classmethod和@Property类装饰器

这篇文章主要讲解了“怎么使用@Staticmethod、@Classmethod和@Property类装饰器”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“怎么使用@Staticmethod、
2023-06-15

python3--面向对象的三大特性:封装,property,classmethod,staticmethod

python中的封装隐藏对象的属性和实现细节,仅对外提供公共访问方式好处:1 将变化隔离2 便于使用3 提供复用性4 提高安全性封装原则1 将不需要对外提供的内容都隐藏起来2 把属性都隐藏,提供公共方法对其访问私有变量和私有方法在pytho
2023-01-30

初窥Python(五)——python中

1. 介绍decorator是用来在代码运行期间动态增加功能的,本质上是一个返回函数的高阶函数。假设现在有这样一种需求,即在每个函数调用前记录日志,记录被调用的函数名称,可以这样实现:def log(func):    def wrappe
2023-01-31

[Python ] python中文件的

原文地址: http://blog.163.com/qimeizhen8808@126/ 这女孩写的挺好,有值得学习的地方。  1) 文件的打开和创建,关闭 a)文件的打开和创建主要有两个open()和file()两个方法。它们的功能是提供
2023-01-31

Python中time

def get_time(): time_array = time.localtime() time_array = time.mktime(time_array) return time.strftime("%Y %m
2023-01-31

python中virtualenvwr

虚拟环境使用virtualenvwrapper前先说一下virtualenv,virtualenv 的一个最大的缺点就是,每次开启虚拟环境之前要在虚拟环境所在目录下的bin目录下执行source命令、activate命令,而我们又很难记住每
2023-01-31

Python中ImportError:

Python脚本在编译的时候,经常会遇到ImportError: No module named *** 的错误错误提示:ImportError: No module named request问题分析:原因是Python中有些模块未导入。
2023-01-31

【Python学习21】Python中函

今天学习了Python函数的用法,了解了使用Python如何定义一个函数。而且代码编写过程中也遇到了一些小小的错误,特此记录一下,以方便以后在遇到同样错误时能够快速找到问题的点。# --coding: utf-8 --# 定义4个简单的函数
2023-01-31

【Python学习笔记】-Python中

python中的格式为为真时的结果 if 判定条件 else 为假时的结果 实例:print(1 if 5>3 else 0) 是先输出结果,再判定条件 输出1,如果5大于3,否则输出0一般用于判断赋值中,例如:x,y = 50,25sm
2023-01-31

Python中SQL——LIKE中的%

转载自:http://blog.csdn.net/chenxiao_ji/article/details/51332791 需求:做项目的过程中,使用了MySQL数据库,后台使用Python来做逻辑层。项目中需要实现一个功能,通过输入搜索框
2023-01-31

Python学习—python中的线程

1.线程定义线程是操作系统能够进行运算调度的最小单位。它被包含在进程之中,是进程中的实际运作单位。一条线程指的是进程中一个单一顺序的控制流,一个进程中可以并发多个线程,每条线程并行执行不同的任务。一个进程至少有一个线程,一个进程必定有一个主
2023-01-31

python学习——python中命令行

python中的命令行参数python中有一个模块sys,sys.argv这个属性提供了对命令行参数的访问。命令行参数是调用某个程序时除程序名外的其他参数。sys.argv是命令行参数的列表len(sys.argv)是命令行参数的个数下面我
2023-01-31

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录