面向对象编程——类方法和静态方法(八)
许多时候,我们创建了一个类,也定义了部分方法,如果我们想调用类中的方法,就必须创建一个对象,有时候显得非常的不方便。
python提供了classmethed(类方法)和staticmethed(静态方法)来解决这种情况。
普通方法绑定到对象,类方法绑定到类。
#使用一个方法一般要这样 class Classmethod_Demo(): role = 'dog' def func(self): print('123') c = Classmethod_Demo() #创建一个对象 c.func()
使用classmethed和staticmethed也能达到这种效果。
classmethod(类方法):不需要实例化,直接用类名调用就好,不用接受self参数,默认传cls,cls代表当前所在的类。
staticmethod(静态方法):完全可以当作普通函数去用,只不过这个函数通过类名.函数名调用。其它的和一般的函数没有区别。
普通对象方法至少需要一个self参数,代表类对象实例。
class Classmethod_Demo(): role = 'dog' @classmethod #类方法 def func(cls): print("123") Classmethod_Demo.func() class staticmethod_Demo(): role = "dog" @staticmethod #静态方法 def func(): print("123") staticmethod_Demo.func()
分类:
python
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· 终于写完轮子一部分:tcp代理 了,记录一下
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理