博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Python 静态方法与类方法
阅读量:6250 次
发布时间:2019-06-22

本文共 1112 字,大约阅读时间需要 3 分钟。

# filename: class_static.pyclass Parent:    name = "I'm the parent"    @staticmethod    def print_name_by_static():        print(Parent.name)    @classmethod    def print_name_by_class(cls):        print(cls.name)class Child(Parent):    pass #(1)    # name = "I'm the child" #(2)if __name__ == "__main__":    p = Parent()    p.print_name_by_static()    p.print_name_by_class()    Parent.print_name_by_static()    Parent.print_name_by_class()    print('=====================')    c = Child()    c.print_name_by_static()    c.print_name_by_class()    Child.print_name_by_static()    Child.print_name_by_class()

运行结果:

>>> I'm the parentI'm the parentI'm the parentI'm the parent=====================I'm the parentI'm the parentI'm the parentI'm the parent

去掉注释(2),注释掉(1):

>>> I'm the parentI'm the parentI'm the parentI'm the parent=====================I'm the parentI'm the childI'm the parentI'm the child

通过上面得出的结果可以分析:

由@staticmethod修饰的方法叫静态方法,由@classmethod修饰的方法叫类方法。

共同点:
静态方法和类方法都可以用类或其实例进行调用。
不同点:
类方法在定义时,需要名为cls的类似于self的参数。cls参数是自动绑定到当前类的。

转载于:https://www.cnblogs.com/fortwo/archive/2013/04/28/3048357.html

你可能感兴趣的文章
C/C++中int128的那点事
查看>>
ios多线程学习笔记(2)
查看>>
Entity Framework Extended Library (EF扩展类库,支持批量更新、删除、合并多个查询等)...
查看>>
黄聪:windowss7显示桌面图标设置在任务栏的解决办法
查看>>
(五)浅谈测试用例
查看>>
读《淘宝数据魔方技术架构解析》有感
查看>>
SQL数据是否存在(是否有数据)判断,表,存储过程是否存在
查看>>
多个Img标签之间的间隙处理方法
查看>>
g++ error: expected ‘)’ before ‘*’ token
查看>>
C++的ABI真特么是evil
查看>>
函数声明和函数表达式
查看>>
Matlab基本函数-conj函数
查看>>
linux常用命令 3
查看>>
SharePoint 2013 托管导航 无法被开启的解决办法
查看>>
初识Java Servlet
查看>>
Test1
查看>>
JS图片切换代码合集
查看>>
Aundit使用记录文档
查看>>
原型 、原型链和对象是怎么实现继承的
查看>>
layui中select切换数据_layui 下拉框 动态获取数据
查看>>