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获取豆瓣电影简介代码分享
Jan 16 Python
Python中字符串的常见操作技巧总结
Jul 28 Python
Python使用pickle模块存储数据报错解决示例代码
Jan 26 Python
Python cookbook(字符串与文本)在字符串的开头或结尾处进行文本匹配操作
Apr 20 Python
python smtplib模块实现发送邮件带附件sendmail
May 22 Python
windows下 兼容Python2和Python3的解决方法
Dec 05 Python
python ChainMap的使用和说明详解
Jun 11 Python
elasticsearch python 查询的两种方法
Aug 04 Python
Python中pymysql 模块的使用详解
Aug 12 Python
Python 经典算法100及解析(小结)
Sep 13 Python
pandas和spark dataframe互相转换实例详解
Feb 18 Python
django注册用邮箱发送验证码的实现
Apr 18 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
round robin权重轮循算法php实现代码
2016/05/28 PHP
php分页查询mysql结果的base64处理方法示例
2017/05/18 PHP
silverlight线程与基于事件驱动javascript引擎(实现轨迹回放功能)
2011/08/09 Javascript
StringTemplate遇见jQuery冲突的解决方法
2011/09/22 Javascript
拉动滚动条加载数据的jquery代码
2012/05/03 Javascript
浅析JQuery UI Dialog的样式设置问题
2013/12/18 Javascript
Javascript常用字符串判断函数代码分享
2014/12/08 Javascript
JavaScript获取页面上被选中文字的方法技巧
2015/03/13 Javascript
学习JavaScript设计模式之模板方法模式
2016/01/20 Javascript
js实现文字滚动效果
2016/03/03 Javascript
JS实现图片剪裁并预览效果
2016/08/12 Javascript
Jquery Easyui分割按钮组件SplitButton使用详解(17)
2016/12/18 Javascript
JS判断指定dom元素是否在屏幕内的方法实例
2017/01/23 Javascript
svg动画之动态描边效果
2017/02/22 Javascript
Angular开发者指南之入门介绍
2017/03/05 Javascript
JavaScript实现多叉树的递归遍历和非递归遍历算法操作示例
2018/02/08 Javascript
JavaScript闭包与作用域链实例分析
2019/01/21 Javascript
微信小程序如何调用新闻接口实现列表循环
2019/07/02 Javascript
JavaScript实现手机号码 3-4-4格式并控制新增和删除时光标的位置
2020/06/02 Javascript
jQuery中getJSON跨域原理的深入讲解
2020/09/02 jQuery
Vue父组件监听子组件生命周期
2020/09/03 Javascript
原生js实现自定义消息提示框
2020/11/19 Javascript
python实现多线程的两种方式
2016/05/22 Python
Django+RestFramework API接口及接口文档并返回json数据操作
2020/07/12 Python
解决c++调用python中文乱码问题
2020/07/29 Python
美国领先的奢侈美容零售商:Bluemercury
2017/07/26 全球购物
Homestay中文官网:全球寄宿家庭
2018/10/18 全球购物
巴西美妆购物网站:Kutiz Beauté
2019/03/13 全球购物
电大自我鉴定
2013/10/27 职场文书
高中毕业自我鉴定
2013/12/13 职场文书
小班秋游活动方案
2014/02/22 职场文书
法人授权委托书样本
2014/09/19 职场文书
预备党员个人总结
2015/02/14 职场文书
小学语文继续教育研修日志
2015/11/13 职场文书
PostgreSQL事务回卷实战案例详析
2022/03/25 PostgreSQL
mysql使用instr达到in(字符串)的效果
2022/04/03 MySQL