Python 进阶_OOP 面向对象编程_静态方法和类方法

简介: 目录目录静态方法类方法使用函数修饰符来声明静态方法和类方法静态方法静态方法仅是类中的函数, 不需要绑定实例, 也就是说静态方法的定义不需要传入 self 参数.

目录

静态方法

静态方法仅是类中的函数, 不需要绑定实例, 也就是说静态方法的定义不需要传入 self 参数. 静态方法不属于类的某一个实例对象, 而是属于类本身, 所以不需要绑定到实例对象. 可以通过 className.staticMethodName 的方式来调用.
特点: 只能使用静态变量, 所以始终占用同一个内存, 执行效率更高, 但不会被自动回收.
应用场景: 用于处理一些不会经常改变, 但却会被频繁调用的数据. EG: Connect String/Config info
Note: 静态成员不能访问非静态成员, 因为非静态成员只有在被调用时才会被加载进内存, 而静态成员是长驻内存且不会被自动回收的, 所以非静态成员却可以访问静态成员.

类方法

类方法和实例方法类似, 区别在于前者需要定义 类对象参数 cls 而后者需要定义 实例对象参数 self. 两者在绑定方法调用中, 都会自动的传递相应的对象到第一次参数 (cls/self) 中.

使用函数修饰符来声明静态方法和类方法

In [1]: class TestStaticMethod(object):
   ...:     @staticmethod
   ...:     def foo():
   ...:         print "Calling static method foo()"
   ...:         

In [2]: class TestClassMethod(object):
   ...:     @classmethod
   ...:     def foo(cls):
   ...:         print "Calling class method foo()"
   ...:         print "foo() is part of class:", cls.__name__
   ...:         

In [3]: tsm = TestStaticMethod()

In [4]: tsm.foo()
Calling static method foo()

In [5]: tcm = TestClassMethod()

In [6]: tcm.foo()
Calling class method foo()
foo() is part of class: TestClassMethod
# 类方法中的 cls 参数表示类对象自身
相关文章
|
2月前
|
缓存 供应链 芯片
电子元件类商品 item_get - 商品详情接口深度分析及 Python 实现
电子元件商品接口需精准返回型号参数、规格属性、认证及库存等专业数据,支持供应链管理与采购决策。本文详解其接口特性、数据结构与Python实现方案。
|
7月前
|
人工智能 Python
[oeasy]python083_类_对象_成员方法_method_函数_function_isinstance
本文介绍了Python中类、对象、成员方法及函数的概念。通过超市商品分类的例子,形象地解释了“类型”的概念,如整型(int)和字符串(str)是两种不同的数据类型。整型对象支持数字求和,字符串对象支持拼接。使用`isinstance`函数可以判断对象是否属于特定类型,例如判断变量是否为整型。此外,还探讨了面向对象编程(OOP)与面向过程编程的区别,并简要介绍了`type`和`help`函数的用法。最后总结指出,不同类型的对象有不同的运算和方法,如字符串有`find`和`index`方法,而整型没有。更多内容可参考文末提供的蓝桥、GitHub和Gitee链接。
175 11
|
10月前
|
测试技术 Python
【03】做一个精美的打飞机小游戏,规划游戏项目目录-分门别类所有的资源-库-类-逻辑-打包为可玩的exe-练习python打包为可执行exe-优雅草卓伊凡-持续更新-分享源代码和游戏包供游玩-1.0.2版本
【03】做一个精美的打飞机小游戏,规划游戏项目目录-分门别类所有的资源-库-类-逻辑-打包为可玩的exe-练习python打包为可执行exe-优雅草卓伊凡-持续更新-分享源代码和游戏包供游玩-1.0.2版本
446 31
【03】做一个精美的打飞机小游戏,规划游戏项目目录-分门别类所有的资源-库-类-逻辑-打包为可玩的exe-练习python打包为可执行exe-优雅草卓伊凡-持续更新-分享源代码和游戏包供游玩-1.0.2版本
|
8月前
|
存储 C语言 Python
[oeasy]python077_int类型怎么用_整数运算_integer_进制转化_int类
本文主要讲解了Python中`int`类型的应用与特性。首先回顾了`int`词根的溯源,探讨了整型变量的概念及命名规则(如匈牙利命名法)。接着分析了整型变量在内存中的存储位置和地址,并通过`type()`和`id()`函数验证其类型和地址。还介绍了整型变量的运算功能,以及如何通过`int()`函数将字符串转化为整数,支持不同进制间的转换(如二进制转十进制)。此外,文章提及了关键字`del`的使用场景,对比了Python与C语言中`int`的区别,并总结了整型与字符串类型的差异,为后续深入学习奠定基础。
163 1
|
11月前
|
数据采集 存储 XML
python实战——使用代理IP批量获取手机类电商数据
本文介绍了如何使用代理IP批量获取华为荣耀Magic7 Pro手机在电商网站的商品数据,包括名称、价格、销量和用户评价等。通过Python实现自动化采集,并存储到本地文件中。使用青果网络的代理IP服务,可以提高数据采集的安全性和效率,确保数据的多样性和准确性。文中详细描述了准备工作、API鉴权、代理授权及获取接口的过程,并提供了代码示例,帮助读者快速上手。手机数据来源为京东(item.jd.com),代理IP资源来自青果网络(qg.net)。
Python进阶系列(十八)
Python进阶系列(十八)
|
测试技术 Python
Python进阶系列(十七)
Python进阶系列(十七)
|
存储 缓存 Python
Python进阶系列(十六)
Python进阶系列(十六)
|
Python Windows
Python进阶系列(十五)
Python进阶系列(十五)
|
存储 API Python
Python进阶系列(十四)
Python进阶系列(十四)

推荐镜像

更多