对于classmethods,第一个参数是调用类方法的类,而不是通常的self for instance方法(除非另有说明,否则隐式地使用类中的所有方法).

这是一个例子 – 为了练习,我添加了一个检查cls参数标识的异常.

class Base(object):

@classmethod

def acquire(cls, param):

if cls is Base:

raise Exception("Must be called via subclass :(")

return "this is the result of `acquire`ing a %r with %r" % (cls, param)

class Something(Base):

pass

class AnotherThing(Base):

pass

print Something.acquire("example")

print AnotherThing.acquire("another example")

print Base.acquire("this will crash")

this is the result of `acquire`ing a with 'example'

this is the result of `acquire`ing a with 'another example'

Traceback (most recent call last):

File "classmethod.py", line 16, in

print Base.acquire("this will crash")

File "classmethod.py", line 5, in acquire

raise Exception("Must be called via subclass :(")

Exception: Must be called via subclass :(

python cls方法_python – cls()函数在类方法中做了什么?相关推荐

  1. python isinstance方法_Python isinstance() 函数

    描述 isinstance() 函数来判断一个对象是否是一个已知的类型,类似 type(). isinstance() 与 type() 区别: type() 不会认为子类是一种父类类型,不考虑继承关 ...

  2. python cmp方法_python cmp函数详解

    cmp( x, y):比较2个对象,前者小于后者返回-1,相等则返回0,大于后者返回1. Python的cmp比较函数比较原理 Python的cmp函数可以比较同类型之间,或者不同数据类型之间.然后根 ...

  3. 列举5个python内置函数和使用方法_Python基础-----函数、内置函数、递归等练习

    !/usr/bin/env python -*- coding:utf-8 -*- ########################################################## ...

  4. python魔法方法_Python魔法方法指南

    有很多人说学习Python基础之后不知道干什么,不管你是从w3c还是从廖雪峰的教程学习的,这些教程都有一个特点:只能引你快速入门,但是有关于Python的很多基础内容这些教程中都没介绍,而这些你没学习 ...

  5. python魔法方法_python,魔法方法指南

    1.简介 本指南归纳于我的几个月的博客,主题是 魔法方法 . 什么是魔法方法呢?它们在面向对象的Python的处处皆是.它们是一些可以让你对类添加"魔法"的特殊方法. 它们经常是两 ...

  6. python魔法方法_Python魔法方法

    魔法方法 含义 基本的魔法方法 __new__(cls[, ...]) 1. __new__ 是在一个对象实例化的时候所调用的第一个方法 2. 它的第一个参数是这个类,其他的参数是用来直接传递给 __ ...

  7. python 参数解析_python的函数对参数解析分析

    以下转自其它博客.觉得总结得太好了,所以拿来自己参考一下. python中函数参数的传递是通过赋值来传递的. 函数参数的使用又有俩个方面值得注意: 1.函数参数是如何定义的 2.在调用函数的过程中参数 ...

  8. python安装方法_Python基础入门——简介和环境配置,超实用!

    作者 | kbsc13 来源 | 机器学习与计算机视觉(ID:AI_Developer) 上周结束了如何构造一个机器学习项目的系列文章,当然还有一篇简单的总结以及介绍一些入门的学习资料,不过还在整理, ...

  9. python圆形代码_python圆形函数

    广告关闭 腾讯云11.11云上盛惠 ,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高返5000元! python3 函数函数文字定义:函数是组织好的,可重复使用的,用来实现单一,或 ...

  10. python del用法_python del()函数用法 -电脑资料

    示例程序如下: >>> a = [-1, 3, 'aa', 85] # 定义一个list >>> a [-1, 3, 'aa', 85] >>> ...

最新文章

  1. 这一年,宇宙“面目”愈发清晰
  2. C# Redis实战(六)
  3. redis(nosql数据库)
  4. 信息系统项目管理知识--组织级项目管理
  5. Solaris 9安装VNC
  6. jqgrid编辑php,php – 实现jqgrid单元格编辑datepicker
  7. JVM——详解类加载过程
  8. ufei pe安装linux,制作UEFI(64位)下的WinPE + Ubuntu + Acronis多启动U盘
  9. 调用高德逆地理接口_地理编码与逆地理编码
  10. 计算机游戏动漫制作自我鉴定,动漫设计专业自我鉴定
  11. JAVA代码 httpclient 模拟NTLM域登录 GET、POST两种连接方式
  12. pgAdmin 3 编译安装
  13. Python提取Word文档中所有脚注文本
  14. 高德地图的基础使用(二)定位蓝点
  15. Apktool工具 - 反编译apk和重新编译apk
  16. 网络+C#各个网上转载
  17. matlab中如何转动三维图_MATLAB小技巧之:绕任意空间轴旋转三维图形
  18. 基于JavaSwing开发书店管理系统+论文 毕业设计 课程设计 大作业
  19. 零基础Unreal Engine 4(UE4)图文笔记之准备篇(一)
  20. 虚拟局域网vlan以及技术

热门文章

  1. 华硕天选笔记本电脑启动机器后搜索不到网络
  2. 网络能搜索计算机但不能连接不上,笔记本能搜到无线网络但连接不上怎么办
  3. 下载chromium for Android
  4. 案例分享:陕西西安599条背街小巷改造提升,推行“多杆合一”
  5. linux下mysql的sql脚本在哪里,Linux下通过shell进MySQL执行SQL或导入脚本
  6. 航班经停地查询api 航班经停地及起降时间查询
  7. python爬取起点vip小说章节_python 爬取qidian某一页全部小说
  8. 校友厅——只有一层的“校友楼”
  9. KEIL MDK中的RO、RW和ZI DATA理解及KEIL中ROM和RAM使用大小计算
  10. 官方固件库V1.4版本介绍