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从入门到精通(DAY 3)
Dec 20 Python
使用python编写简单的小程序编译成exe跑在win10上
Jan 15 Python
python使用Tkinter实现在线音乐播放器
Jan 30 Python
python Pandas 读取txt表格的实例
Apr 29 Python
python3 拼接字符串的7种方法
Sep 12 Python
使用python批量化音乐文件格式转换的实例
Jan 09 Python
python将pandas datarame保存为txt文件的实例
Feb 12 Python
Python中的上下文管理器相关知识详解
Sep 19 Python
Python+appium框架原生代码实现App自动化测试详解
Mar 06 Python
Python运行提示缺少模块问题解决方案
Apr 02 Python
浅谈keras中的后端backend及其相关函数(K.prod,K.cast)
Jun 29 Python
简单了解Django项目应用创建过程
Jul 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
如何在HTML 中嵌入 PHP 代码
2015/05/13 PHP
浅谈PHP中的错误处理和异常处理
2017/02/04 PHP
php curl简单采集图片生成base64编码(并附curl函数参数说明)
2019/02/15 PHP
ThinkPHP框架整合微信支付之Native 扫码支付模式二图文详解
2019/04/09 PHP
FireFox与IE 下js兼容触发click事件的代码
2008/11/20 Javascript
jQuery控制输入框只能输入数值的小例子
2013/03/20 Javascript
用表格输出1-1000之间的数字实现代码(附特效)
2013/04/21 Javascript
jquery使用append(content)方法注意事项分享
2014/01/06 Javascript
jquery.form.js用法之清空form的方法
2014/03/07 Javascript
Js Jquery创建一个弹出层可加载一个页面
2014/05/08 Javascript
jQuery实现边框动态效果的实例代码
2016/09/23 Javascript
JavaScript学习总结之正则的元字符和一些简单的应用
2017/06/30 Javascript
解决vue+webpack打包路径的问题
2018/03/06 Javascript
nodejs 使用 js 模块的方法实例详解
2018/12/04 NodeJs
详解如何在Javascript和Sass之间共享变量
2019/11/13 Javascript
[30:51]DOTA2上海特级锦标赛主赛事日 - 3 胜者组第二轮#1Liquid VS MVP.Phx第一局
2016/03/04 DOTA
让你Python到很爽的加速递归函数的装饰器
2019/05/26 Python
python脚本监控logstash进程并邮件告警实例
2020/04/28 Python
css3实现图片遮罩效果鼠标hover以后出现文字
2013/11/05 HTML / CSS
HTML5的Geolocation地理位置定位API使用教程
2016/05/12 HTML / CSS
英国电子产品购物网站:Tech in the basket
2019/11/08 全球购物
优秀员工年终发言演讲稿
2014/01/01 职场文书
学习党章思想汇报
2014/01/07 职场文书
美德好少年主要事迹
2014/01/29 职场文书
工程资料员岗位职责
2014/03/10 职场文书
早会主持词
2014/03/17 职场文书
民主评议政风行风活动心得体会
2014/10/29 职场文书
2014年酒店年度工作总结
2014/12/10 职场文书
求职信范文怎么写
2015/03/19 职场文书
分享:关于学习的励志名言赏析
2019/08/16 职场文书
Python中os模块的简单使用及重命名操作
2021/04/17 Python
React + Threejs + Swiper 实现全景图效果的完整代码
2021/06/28 Javascript
redis客户端实现高可用读写分离的方式详解
2021/07/04 Redis
SQL实现LeetCode(196.删除重复邮箱)
2021/08/07 MySQL
在HTML中引入CSS的几种方式介绍
2021/12/06 HTML / CSS
解决linux下redis数据库overcommit_memory问题
2022/02/24 Redis