面的部分描述一些常见的python约定,在django中贯穿始终,在任何大一些的python库都的确存在。
Callable
python允许代码可以有许多途径被运行,任何东西都能像典型的函数标识可调用的一样,按相同的方式执行。所有函数,类,方法都是自动可调用的,像期望的一样,但是任意对象类实例也能被标识为可调用,只要提供一个单一方法。
__calll__(self[, ...])
当实例化对象像函数一样调用时,这个方法就开始执行。它和其他的成员函数很象,不同的地方就是被调用的方式。
>>> class Multiplier(object):
... def __init__(self, factor):
... self.factor = factor
... def __call__(self, value):
... return value * self.factor
...
>>> times2 = Multiplier(2)
>>> times2(5)
10
>>> times2(10)
20
>>> times3 = Multiplier(3)
>>> times3(10)
30
python也提供了一个内置函数来判定可调用(callable)的对象。 callable()函数只有一个参数,返回True或False。判断对象是否像函数一样可调用。
>>> class Basic(object):
... pass
...
>>> class Callable(object):
... def __call__(self):
... return "Executed!"
...
>>> b = Basic()
>>> callable(b)
False
>>> c = Callable()
>>> callable(c)
True
字典
字 典是单一对象中的键值映射。大多数编程语言都有相同形式的字典类型,其他语言称之为“hashes", "maps"或"associative arrays(关联数组)",除了简单通过指定键来存取值,python的字典提供了许多方法,一边更好的操作底层的映射。为了像一个真正的字典的表现行 为,一个对象需要提供一些方法,文档参见python library reference。
__contains__(self, key)
通过使用in操作符, 如果指定的键存在于底层的映射中,则返回True,否则返回False。它从不返回异常。
__getitem__(self, key)
如果存在的华,则返回被指定键引用的值。如果键不在底层的映射中,则抛出一个异常KeyError。
__setitem__(self, key, value)
通过指定的键来保存指定的值,保存之后准备引用它。如果有一个映射存在,可用相同的键覆盖已经存在的值。
>>> class CaseInsensitiveDict(dict):
... def __init__(self, **kwargs):
... for key, value in kwargs.items():
... self[key.lower()] = value
... def __contains__(self, key):
... return super(CaseInsensitiveDict, self).__contains__(key.lower())
... def __getitem__(self, key):
... return super(CaseInsensitiveDict, self).__getitem__(key.lower())
... def __setitem__(self, key, value):
... super(CaseInsensitiveDict, self).__setitem__(key.lower(), value)
...
>>> d = CaseInsensitiveDict(SpAm='eggs')
>>> 'spam' in d
True
>>> d['SPAM']
'eggs'
>>> d['sPaM'] = 'burger'
>>> d['SpAm']
'burger
字典也可以用作迭代使用,当代码循环字典的内容时,键用作列表。更多信息参见即将介绍的"Iterables"(迭代)。
分享到:
相关推荐
资源分类:Python库 所属语言:Python 资源全名:blackduck-c-cpp-1.0.4.tar.gz 资源来源:官方 安装方法:https://lanzao.blog.csdn.net/article/details/101784059
python库。 资源全名:blackduck-0.0.34.tar.gz
资源来自pypi官网。 资源全名:duck-xchem-0.0.29.tar.gz
资源来自pypi官网。 资源全名:blackduck-0.0.44-py3-none-any.whl
MacOS 将云存储挂载为本地磁盘Mountain_Duck_4.10.3
$ bower install rubber-duck-debugger --save 或 。 用法 导入 Web Components 的 polyfill: < script src =" bower_components/webcomponentsjs/webcomponents.min.js " > </ script > 导入...
使用RequireJS和Duck-Angular的AngularJS应用示例位于 ,有两种组合: duck-angular当前依赖RequireJS。 duck-angular是用于引导和测试内存中AngularJS视图和控制器的容器:无需浏览器或外部进程。 设置 鸭角可...
Redux-Duck-immer 受启发。 提供redux帮助器以实现建议。 减速器的状态由产生,以实现不变性。安装yarn add redux-duck-immer原料药定义动作类型import { defineType } from 'redux-duck-immer' ;/** * type Action...
const run = require ( 'run-duck-run' ) run ( foo , ( err ) => { if ( err ) { console . error ( err ) } else { console . log ( 'all good' ) } } ) ( ) // done cb function * foo ( ) { yield ...
docker-duck-dns
Duck-Hunt-Mobile:ducky
Duck Duck是Gnome的快速应用程序启动器
duckduckgo图片下载器 批量下载器工具,用于Duckduckgo图像搜索的结果。 先决条件 (高速文件下载器) 安装 克隆GIT存储库: $ git clone https://github.com/grom-it/duckduckgo-image-downloader.git 全局安装...
鸭猎 描述 Duck Hunt是一款受原始Nintendo Duck Hunt游戏启发的简单街机游戏。 链接 用户故事: 生产部署: GitHub: 技术领域 ...在这一步中,我们将为项目创建目录,使用Yeoman搭建项目,通过grunt...mkdir duck-hunt
抽象基类简称 ABC,是对 duck-typing 的补充,它提供了一种定义接口的新方式,相比之下其他技巧例如 hasattr() 显得过于笨拙或有微妙错误(例如使用 魔术方法)。ABC 引入了虚拟子类,这种类并非继承自其他类,但却...
Duck-Season-Game- 面向对象编程作业的游戏。 指示: 射鸭子。 不留任何幸存者
duckduckgo-voice-search(该项目处于归档状态) 一个非常简单的duckduckgo语音搜索,可让您懒于使用键盘的人。 只需用您的声音来搜索duckduckgo 一个简单的虚拟助手(该项目处于归档状态) 尝试 如何设置? 如果...
概述这是一个chrome扩展程序,用于显示组件信息,包括操作风险,漏洞,使用的Black Duck Hub项目和违反Black Duck Hub的政策,以帮助确定是否应在项目中使用组件。建造生产: npm run build 发展: npm run dev-...
DuckDuckGo API 的 PHP 客户端 这是一个 PHP 库,支持访问 API。要求PHP >= 5.3 启用以下扩展: 图书馆。 PHPUnit 来运行测试。 (可选)入门从文档中阅读和。文档有关更详细的文档,请参阅 。 测试$ phpunit 执照在...