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实现在pickling的时候压缩的方法
Sep 25 Python
pygame学习笔记(3):运动速率、时间、事件、文字
Apr 15 Python
Python有序字典简单实现方法示例
Sep 28 Python
python 顺时针打印矩阵的超简洁代码
Nov 14 Python
python保存二维数组到txt文件中的方法
Nov 15 Python
Python时间序列缺失值的处理方法(日期缺失填充)
Aug 11 Python
python由已知数组快速生成新数组的方法
Apr 08 Python
jupyter notebook oepncv 显示一张图像的实现
Apr 24 Python
python实现邮件循环自动发件功能
Sep 11 Python
Pycharm 如何设置HTML文件自动补全代码或标签
May 21 Python
Python移位密码、仿射变换解密实例代码
Jun 27 Python
python自动获取微信公众号最新文章的实现代码
Jul 15 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验证码(支持中文)
2007/02/14 PHP
深入解析PHP 5.3.x 的strtotime() 时区设定 警告信息修复
2013/08/05 PHP
php面向对象与面向过程两种方法给图片添加文字水印
2015/08/26 PHP
Yii2.0实现的批量更新及批量插入功能示例
2019/01/29 PHP
在PHP中输出JS语句以及乱码问题的解决方案
2019/02/13 PHP
jQuery验证元素是否为空的两种常用方法
2015/03/17 Javascript
js实现的简练高效拖拽功能示例
2016/12/21 Javascript
Angular2自定义分页组件
2017/04/19 Javascript
详解前端路由实现与react-router使用姿势
2017/08/07 Javascript
简单的Vue SSR的示例代码
2018/01/12 Javascript
通过vue-router懒加载解决首次加载时资源过多导致的速度缓慢问题
2018/04/08 Javascript
Vue.js 实现微信公众号菜单编辑器功能(一)
2018/05/08 Javascript
微信小程序自定义对话框弹出和隐藏动画
2018/07/19 Javascript
vue实现的下拉框功能示例
2019/01/29 Javascript
如何实现一个简易版的vuex持久化工具
2019/09/11 Javascript
Element图表初始大小及窗口自适应实现
2020/07/10 Javascript
JQuery使用数组遍历跳出each循环
2020/09/01 jQuery
[05:00]第二届DOTA2亚洲邀请赛主赛事第三天比赛集锦.mp4
2017/04/04 DOTA
[44:40]Serenity vs Pain 2018国际邀请赛小组赛BO2 第一场 8.19
2018/08/21 DOTA
[43:49]LGD vs CHAOS 2019国际邀请赛小组赛 BO2 第一场 8.15
2019/08/16 DOTA
Python 字典dict使用介绍
2014/11/30 Python
python读取与写入csv格式文件的示例代码
2017/12/16 Python
python selenium UI自动化解决验证码的4种方法
2018/01/05 Python
Pycharm代码无法复制,无法选中删除,无法编辑的解决方法
2018/10/22 Python
python+opencv实现霍夫变换检测直线
2020/10/23 Python
Python爬虫——爬取豆瓣电影Top250代码实例
2019/04/17 Python
python对象与json相互转换的方法
2019/05/07 Python
PyQtGraph在pyqt中的应用及安装过程
2019/08/04 Python
Python图像处理库PIL的ImageFilter模块使用介绍
2020/02/26 Python
基于PyInstaller各参数的含义说明
2021/03/04 Python
美国著名的女性内衣零售商:Frederick’s of Hollywood
2018/02/24 全球购物
信用社实习人员自我鉴定
2013/09/20 职场文书
高中生自我评价个人范文
2013/11/09 职场文书
浪漫婚礼主题活动策划方案
2014/09/15 职场文书
个人四风问题对照检查材料
2014/09/26 职场文书
工作汇报开头与结尾怎么写
2014/11/08 职场文书