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实现音乐下载器
Apr 15 Python
python 运用Django 开发后台接口的实例
Dec 11 Python
python利用thrift服务读取hbase数据的方法
Dec 27 Python
Flask框架工厂函数用法实例分析
May 25 Python
python数据处理之如何选取csv文件中某几行的数据
Sep 02 Python
Python-numpy实现灰度图像的分块和合并方式
Jan 09 Python
tensorflow多维张量计算实例
Feb 11 Python
python GUI库图形界面开发之PyQt5打印控件QPrinter详细使用方法与实例
Feb 28 Python
Pygame框架实现飞机大战
Aug 07 Python
python Cartopy的基础使用详解
Nov 01 Python
Python中re模块的元字符使用小结
Apr 07 Python
Python实现仓库管理系统
May 30 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
SESSION信息保存在哪个文件目录下以及能够用来保存什么类型的数据
2012/06/17 PHP
php实现发送微信模板消息的方法
2015/03/07 PHP
10个对初学者非常有用的PHP技巧
2016/04/06 PHP
PHP5.3连接Oracle客户端及PDO_OCI模块的安装方法
2016/05/13 PHP
jQuery Div中加载其他页面的实现代码
2009/02/27 Javascript
onkeydown事件解决按回车键直接提交数据的需求
2013/04/11 Javascript
Nodejs为什么选择javascript为载体语言
2015/01/13 NodeJs
使用JQuery FancyBox插件实现图片展示特效
2015/11/16 Javascript
JavaScript获取浏览器信息的方法
2015/11/20 Javascript
基于jquery实现省市联动效果
2015/11/23 Javascript
JavaScript中数组slice和splice的对比小结
2016/09/22 Javascript
js replace()去除代码中空格的实例
2017/02/14 Javascript
VsCode新建VueJs项目的详细步骤
2017/09/23 Javascript
小试SVG之新手小白入门教程
2019/01/08 Javascript
vue 组件开发原理与实现方法详解
2019/11/29 Javascript
JavaScript this使用方法图解
2020/02/04 Javascript
Vue ElementUI实现:限制输入框只能输入正整数的问题
2020/07/31 Javascript
[01:05:30]VP vs TNC 2018国际邀请赛小组赛BO2 第一场 8.17
2018/08/20 DOTA
跟老齐学Python之网站的结构
2014/10/24 Python
python常见数制转换实例分析
2015/05/09 Python
Python判断一个三位数是否为水仙花数的示例
2018/11/13 Python
opencv实现图片模糊和锐化操作
2018/11/19 Python
python issubclass 和 isinstance函数
2019/07/25 Python
Python hashlib加密模块常用方法解析
2019/12/18 Python
python 使用三引号时容易犯的小错误
2020/10/21 Python
解决Firefox下不支持outerHTML问题代码分享
2014/06/04 HTML / CSS
用HTML5 实现橡皮擦的涂抹效果的教程
2015/05/11 HTML / CSS
Html5 canvas实现粒子时钟的示例代码
2018/09/06 HTML / CSS
远程调用的原理
2014/07/05 面试题
园艺师求职信
2014/03/10 职场文书
忠诚奉献演讲稿
2014/09/12 职场文书
销售顾问工作计划书
2014/09/15 职场文书
离婚协议书范本(通用篇)
2014/11/30 职场文书
2015年全国爱耳日活动总结
2015/02/27 职场文书
法定代表人资格证明书
2015/06/18 职场文书
Elasticsearch 批量操作
2022/04/19 Python