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 相关文章推荐
在Python3中初学者应会的一些基本的提升效率的小技巧
Mar 31 Python
Python实现的数据结构与算法之队列详解
Apr 22 Python
Python分治法定义与应用实例详解
Jul 28 Python
python版本的仿windows计划任务工具
Apr 30 Python
python3实现钉钉消息推送的方法示例
Mar 14 Python
详解爬虫被封的问题
Apr 23 Python
Python实现蒙特卡洛算法小实验过程详解
Jul 12 Python
Python实现性能自动化测试竟然如此简单
Jul 30 Python
python并发编程多进程之守护进程原理解析
Aug 20 Python
浅谈python中统计计数的几种方法和Counter详解
Nov 07 Python
Tensorflow 使用pb文件保存(恢复)模型计算图和参数实例详解
Feb 11 Python
如何使用 Flask 做一个评论系统
Nov 27 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 高级课程笔记 面向对象
2009/06/21 PHP
PHP 面向对象程序设计(oop)学习笔记(一) - 抽象类、对象接口、instanceof 和契约式编程
2014/06/12 PHP
php实现根据身份证获取精准年龄
2020/02/26 PHP
使用git迁移Laravel项目至新开发环境的步骤详解
2020/04/06 PHP
javascript 哈希表(hashtable)的简单实现
2010/01/20 Javascript
Javascript基础教程之数据类型 (数值 Number)
2015/01/18 Javascript
浅谈jquery回调函数callback的使用
2015/01/30 Javascript
js实现交换运动效果的方法
2015/04/10 Javascript
由ReactJS的Hello world说开来
2015/07/02 Javascript
Three.js学习之几何形状
2016/08/01 Javascript
jQuery Mobile漏洞会有跨站脚本攻击风险
2017/02/12 Javascript
详解JavaScript 中getElementsByName在IE中的注意事项
2017/02/21 Javascript
基于AGS JS开发自定义贴图图层
2017/03/31 Javascript
基于jQuery.i18n实现web前端的国际化
2018/05/04 jQuery
layui默认选中table的CheckBox复选框方法
2019/09/19 Javascript
Node.js 在本地生成日志文件的方法
2020/02/07 Javascript
jQuery 移除事件的方法
2020/06/20 jQuery
jquery实现简单每周轮换的日历
2020/09/10 jQuery
Vue向后台传数组数据,springboot接收vue传的数组数据实例
2020/11/12 Javascript
跟老齐学Python之类的细节
2014/10/13 Python
详解python中xlrd包的安装与处理Excel表格
2016/12/16 Python
python计算两个地址之间的距离方法
2018/06/09 Python
python3 中的字符串(单引号、双引号、三引号)以及字符串与数字的运算
2019/07/18 Python
Python 元组拆包示例(Tuple Unpacking)
2019/12/24 Python
分享一个H5原生form表单的checkbox特效代码
2018/02/26 HTML / CSS
法律专业推荐信范文
2013/11/29 职场文书
党员一句话承诺大全
2014/03/28 职场文书
合同协议书格式
2014/04/18 职场文书
医院节能减排方案
2014/06/13 职场文书
合作协议书模板2014
2014/09/26 职场文书
大一学生个人总结
2015/02/15 职场文书
上课迟到检讨书范文
2015/05/06 职场文书
2015暑期工社会实践报告
2015/07/13 职场文书
2016医师资格考试考生诚信考试承诺书
2016/03/25 职场文书
竞聘开场白方式有哪些?
2019/08/28 职场文书
详解MySQL中timestamp和datetime时区问题导致做DTS遇到的坑
2021/12/06 MySQL