python中class什么意思_python-classmethod在此代码中做什么?
y是一个包装函数的修饰器,您可以在类或(等效)其实例上调用生成的对象:
>>> class x(object):
... def c1(*args): print 'c1', args
... c1 = classmethod(c1)
... @classmethod
... def c2(*args): print 'c2', args
...
>>> inst = x()
>>> x.c1()
c1 (,)
>>> x.c2()
c2 (,)
>>> inst.c1()
c1 (,)
>>> inst.c2()
c2 (,)
如您所见,无论是直接定义它还是使用装饰器语法定义它,以及在类或实例上调用它,y始终将类作为其第一个参数。
classmethod的主要用途之一是定义替代构造函数:
>>> class y(object):
... def __init__(self, astring):
... self.s = astring
... @classmethod
... def fromlist(cls, alist):
... x = cls('')
... x.s = ','.join(str(s) for s in alist)
... return x
... def __repr__(self):
... return 'y(%r)' % self.s
...
>>> y1 = y('xx')
>>> y1
y('xx')
>>> y2 = y.fromlist(range(3))
>>> y2
y('0,1,2')
现在,如果您将y子类化,则该类方法将继续工作,例如:
>>> class k(y):
... def __repr__(self):
... return 'k(%r)' % self.s.upper()
...
>>> k1 = k.fromlist(['za','bu'])
>>> k1
k('ZA,BU')
python中class什么意思_python-classmethod在此代码中做什么?相关推荐
- 基于python的九轴惯性传感器的数据预处理代码-中值滤波实验
** 基于python的九轴惯性传感器的数据预处理代码-中值滤波实验 ** import random import numpy as np import pandas as pd import sc ...
- python可以开多少线程_Python开启线程,在函数中开线程的实例
逻辑处理上分成了多个模块,为了提高效率,前一个模块处理完调用后一个模块操作时使用多线程 我这里遇到的情形是前面取数据后面存到mysql,发现单线程效率很低,改为取数据后开线程存到mysql 开启线程之 ...
- python资源管理器选择文件_Python:在资源管理器中获取选定文件的列表(windows7)...
我知道现在在这里发布答案有点晚了,但我几个月前尝试过Olav的解决方案,但它没有完全起作用:工作目录是脚本的工作目录,所以我不得不删除if条件才能使其工作,但它选择了所有Windows资源管理器窗口中 ...
- python中formatter的用法_Python pyplot.FuncFormatter方法代码示例
本文整理汇总了Python中matplotlib.pyplot.FuncFormatter方法的典型用法代码示例.如果您正苦于以下问题:Python pyplot.FuncFormatter方法的具体 ...
- python中font的用法_Python font.nametofont方法代码示例
本文整理汇总了Python中tkinter.font.nametofont方法的典型用法代码示例.如果您正苦于以下问题:Python font.nametofont方法的具体用法?Python fon ...
- python tkinter 窗口禁止编辑_python tkinter禁用文本窗口中的换行
在下面的代码中,我正在寻找一种方法来禁用文本小部件中的换行符.我只需要使用一个条目小部件,但是条目没有撤销功能.在 当我在文本小部件中按enter键时,parse函数会根据需要调用,但它也会转到下一行 ...
- python使用mysql实例教程_Python操作Mysql实例代码教程在线版(查询手册)_python
实例1.取得MYSQL的版本 在windows环境下安装mysql模块用于python开发 MySQL-python Windows下EXE安装文件下载 复制代码 代码如下: # -*- coding ...
- 如何在代码中让按钮高亮_如何在C代码中插入移位寄存器
上期内容:AI Engine到底是什么? 众所周知,标准C或C++代码是没有HDL代码的并行性和时序性的,那么如何在C代码中插入寄存器呢?Vivado HLS提供了IP库,这些IP库使得HLS可直接从 ...
- java中getup用法_你还在 Java 代码中写 set/get 方法?赶快试试这款插件吧!
前言 what?你的 Java 代码中还充斥着大量的 set/get 方法? 我们在刚开始学习 Java 语言的时候讲过,面向对象的三大特征就是封装,继承,和多态.在 Java 中,要保证封装性,需要 ...
- C语言系列(二):最近重拾C语言的想法,谈到C中易错点,难点;以及开源代码中C语言的一些常用技巧,以及如何利用define、typedef、const等写健壮的C程序...
写在前面的话:本系列主要是自己在c语言运用时,对一些不了解,但开源代码中常用的技巧,和一些c语言中偏门和易错点进行解析. 加入了自己的分析,如果不到位请多海涵,另外,引用一些非常好的文章(都有引用li ...
最新文章
- LeetCode简单题之二分查找
- Micropython开发实例之TPYBoard v702GPRS功能测试
- jQuery下的ajax【5分钟掌握】
- Wireshark介绍 与 过滤器表达式语法
- python selenium 小知识点整理笔记(更新中...)
- 均匀三次b样条曲线_西门子数控曲线加工进给速度优化指令
- django-celery beat报错 error pid
- 输出100之间的所有质数(素数)
- PDF 报告生成器:用 reportlab 和 pdfrw 生成自定义 PDF 报告
- 常见数学公式和符号的英文读法大全
- C# 匿名函数_C# 匿名函数使用整理
- 第22节 NAT(网络地址转换)—实现公网IP和私网IP之间的转换
- java field 字段类型_Java Field类
- 芯片行业相关公司及就业岗位汇总
- 设计adm和CPU计算机组装方案,成熟的解决方案:CPU风扇(AMD和INTEL)的详细拆卸和安装方法(图形教程)...
- linux系统获取root权限,linux怎么进入root权限
- JS下载文件|无刷新下载文件
- 关于C语言的优秀文章
- win7计算机文件夹选项在哪里,Win7文件夹选项不见了怎么办?
- Scala核心编程 第六章—Scala面向对象编程(一)