Python的__builtin__模块中的一些要点知识


Posted in Python onMay 02, 2015

1.isinstance函数:除了以一个类型作为参数,还可以以一个类型元组作为参数。

isinstance(obj,basestring)===isinstance(obj,(str,unicode))

2.getattr函数:可以给一个默认值,以免触发错误。

writte=getattr(obj,'write',sys.stdout.write)

3.type函数:即可以得到一个对象的类型,也可以直接由它创建一个新类型:

>>> Point=type('Point',(object,),{'x':0,'y':0})
>>> p=Point()
>>> p.x,p.y
(0, 0)
>>> p=Point(3,8)
Traceback (most recent call last):
 File "<pyshell#55>", line 1, in <module>
 p=Point(3,8)
TypeError: object() takes no parameters
>>> pprint.pprint(dir(Point))
['__class__',
 '__delattr__',
 '__dict__',
 '__doc__',
 '__format__',
 '__getattribute__',
 '__hash__',
 '__init__',
 '__module__',
 '__new__',
 '__reduce__',
 '__reduce_ex__',
 '__repr__',
 '__setattr__',
 '__sizeof__',
 '__str__',
 '__subclasshook__',
 '__weakref__',
 'x',
 'y']
>>> p.name='source point'
>>> p.name
'source point'
>>> pprint.pprint(dir(p))
['__class__',
 '__delattr__',
 '__dict__',
 '__doc__',
 '__format__',
 '__getattribute__',
 '__hash__',
 '__init__',
 '__module__',
 '__new__',
 '__reduce__',
 '__reduce_ex__',
 '__repr__',
 '__setattr__',
 '__sizeof__',
 '__str__',
 '__subclasshook__',
 '__weakref__',
 'name',
 'x',
 'y']
>>> def tostr(self):
 return '(%s,%s)'%(self.x,self.y)
>>> Point.__str__=tostr
>>> print p
(0,0)
>>> def init(self,x,y):
 self.x,self.y=x,y
  
>>> Point.__init__=init
>>> p2=Point(6,8)
>>> print p2
(6,8)
>>>

4.issubclass(bool,int)==True

5.numbers.Number是所有数字类型的基类

6.type(None)==NoneType,None是一个常量

7.iter函数除了iter(object)形式,还有iter(callable,sentinel)也是返回一个iterator对象

>>> def getrand():
 import random
 return random.randint(1,100)
>>> for i in iter(getrand,50):print i,#获取第一次得到50之前的所有1-100的随机数
32 19 82 28 30 41 100 39 71 29 45 30 94 77 62 26 25 19 82 20 55 20 43 73
>>> for i in iter(getrand,50):print i,#获取第一次得到50之前的所有1-100的随机数
22 54 14 25 60 65 16 80 61 5 48 61 2 30 90 98 70 10 55 45 23 72 87 39 70 3 84 85
>>>

8.BaseException是一切exceptions的基类,Exception只是一切不exit的exceptions的基类

9.locals/globals/vars/dir:

[1]locals/globals很简单,是相对于当前作用域的本地/全局对象dict;

[2]vars()==locals(),vars(obj)==obj.__dict__

[3]没有参数,set(dir())==set(locals().keys());if hasattr(obj,'__dir__')=>dir(obj)==obj.__dir__();否则,如果obj是模块对象,dir(obj)返回的是模块的所有属性;如果obj是类对象,dir(obj)返回的是类的所有属性,然后是从基类继承来的属性;如果obj是实例对象,dir(obj)返回的是实例对象专有的属性、其所属类的属性、其所属类基类继承来的属性。【对类对象的任何修改,必将反映到其实例对象上;对基类的任何修改,也必将反映到派生类上。当然,属性遮蔽的情况除外。】

10.enumerate函数:enumerate(obj,[start]),如果定义了start,则序数将从start开始,而不是从默认的零开始。

>>> for i,name in enumerate(['C','C++','CSharp','Java','Python'],1):
 print '%d.%s'%(i,name)
1.C
2.C++
3.CSharp
4.Java
5.Python
>>>
Python 相关文章推荐
Python的Django框架安装全攻略
Jul 15 Python
详解python的ORM中Pony用法
Feb 09 Python
django 按时间范围查询数据库实例代码
Feb 11 Python
Python安装图文教程 Pycharm安装教程
Mar 27 Python
Python3 执行系统命令并获取实时回显功能
Jul 09 Python
python 命令行传入参数实现解析
Aug 30 Python
Python3实现将一维数组按标准长度分隔为二维数组
Nov 29 Python
简单了解Python读取大文件代码实例
Dec 18 Python
django在保存图像的同时压缩图像示例代码详解
Feb 11 Python
Python生成器常见问题及解决方案
Mar 21 Python
python处理写入数据代码讲解
Oct 22 Python
python 如何获取页面所有a标签下href的值
May 06 Python
一些Python中的二维数组的操作方法
May 02 #Python
在Python的Tornado框架中实现简单的在线代理的教程
May 02 #Python
探究Python的Tornado框架对子域名和泛域名的支持
May 02 #Python
Python编程中运用闭包时所需要注意的一些地方
May 02 #Python
按日期打印Python的Tornado框架中的日志的方法
May 02 #Python
详细解读Python的web.py框架下的application.py模块
May 02 #Python
使用Python的web.py框架实现类似Django的ORM查询的教程
May 02 #Python
You might like
PHP中的reflection反射机制测试例子
2014/08/05 PHP
分享一则PHP定义函数代码
2015/02/26 PHP
ubutu 16.04环境下,PHP与mysql数据库,网页登录验证实例讲解
2017/07/20 PHP
jquery中dom操作和事件的实例学习 下拉框应用
2011/12/01 Javascript
40个新鲜出炉的jQuery 插件和免费教程[上]
2012/07/24 Javascript
在JavaScript里嵌入大量字符串常量的实现方法
2013/07/07 Javascript
Eclipse编辑jsp、js文件时卡死现象的解决办法汇总
2016/02/02 Javascript
JavaScript的MVVM库Vue.js入门学习笔记
2016/05/03 Javascript
第八篇Bootstrap下拉菜单实例代码
2016/06/21 Javascript
再谈Javascript中的异步以及如何异步
2016/08/19 Javascript
手机端点击图片放大特效PhotoSwipe.js插件实现
2016/08/24 Javascript
servlet+jquery实现文件上传进度条示例代码
2017/01/25 Javascript
用JavaScript和jQuery实现瀑布流
2017/03/19 Javascript
微信小程序 数据遍历的实现
2017/04/05 Javascript
Vue实现textarea固定输入行数与添加下划线样式的思路详解
2018/06/28 Javascript
详解Vue.js v-for不支持IE9的解决方法
2018/12/29 Javascript
基于mpvue小程序使用echarts画折线图的方法示例
2019/04/24 Javascript
开源一个微信小程序仪表盘组件过程解析
2019/07/30 Javascript
Vue插件之滑动验证码用法详解
2020/04/05 Javascript
js瀑布流布局的实现
2020/06/28 Javascript
[01:03:03]VP vs Mineski 2018国际邀请赛淘汰赛BO3 第一场 8.22
2018/08/23 DOTA
python使用Image处理图片常用技巧分析
2015/06/01 Python
说一说Python logging
2016/04/15 Python
详解Python爬取并下载《电影天堂》3千多部电影
2019/04/26 Python
python pycharm的安装及其使用
2019/10/11 Python
Tensorflow之MNIST CNN实现并保存、加载模型
2020/06/17 Python
Python脚本实现Zabbix多行日志监控过程解析
2020/08/26 Python
CSS3 简写animation
2012/05/10 HTML / CSS
世界排名第一的万圣节服装店:Spirit Halloween
2018/10/16 全球购物
幼儿园校车司机的岗位职责
2014/01/30 职场文书
2015年爱国卫生月活动总结
2015/03/26 职场文书
医院办公室主任岗位职责
2015/04/01 职场文书
毕业论文指导老师意见
2015/06/04 职场文书
催款函怎么写
2015/06/24 职场文书
初中生物教学随笔
2015/08/15 职场文书
高一作文之乐趣
2019/11/21 职场文书