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代码真的很爽
Aug 26 Python
Python的爬虫程序编写框架Scrapy入门学习教程
Jul 02 Python
python实现校园网自动登录的示例讲解
Apr 22 Python
Python开发网站目录扫描器的实现
Feb 21 Python
Python 微信爬虫完整实例【单线程与多线程】
Jul 06 Python
pytorch 利用lstm做mnist手写数字识别分类的实例
Jan 10 Python
python扫描线填充算法详解
Feb 19 Python
python实现拼接图片
Mar 23 Python
PyQt5 如何让界面和逻辑分离的方法
Mar 24 Python
Python使用Paramiko控制liunx第三方库
May 20 Python
Python多线程 Queue 模块常见用法
Jul 04 Python
python数字图像处理:图像简单滤波
Jun 28 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生成EAN_13标准条形码实例
2013/11/13 PHP
一个不易被发现的PHP后门代码解析
2014/07/05 PHP
PHP+Mysql+jQuery文件下载次数统计实例讲解
2015/10/10 PHP
Yii2实现跨mysql数据库关联查询排序功能代码
2017/02/10 PHP
为Yahoo! UI Extensions Grid增加内置的可编辑器
2007/03/10 Javascript
JavaScript面象对象设计
2008/04/28 Javascript
javascript中负数算术右移、逻辑右移的奥秘探索
2013/10/17 Javascript
HTTP 304错误的详细讲解
2013/11/13 Javascript
JavaScript实现多维数组的方法
2013/11/20 Javascript
JS取文本框中最小值的简单实例
2013/11/29 Javascript
javascript操作表格排序实例分析
2015/05/06 Javascript
JavaScript中数组添加值和访问值常见问题
2016/02/06 Javascript
AngularJS 模型详细介绍及实例代码
2016/07/27 Javascript
微信小程序scroll-view实现横向滚动和上拉加载示例
2017/03/06 Javascript
jQueryUI Sortable 应用Demo(分享)
2017/09/07 jQuery
通过一次报错详细谈谈Point事件
2018/05/17 Javascript
详解angular如何调用HTML字符串的方法
2018/06/30 Javascript
angularJs select绑定的model取不到值的解决方法
2018/10/08 Javascript
ES6的Fetch异步请求的实现方法
2018/12/07 Javascript
详解Vue中使用插槽(slot)、聚类插槽
2019/04/12 Javascript
Angular+ionic实现折叠展开效果的示例代码
2020/07/29 Javascript
python中类变量与成员变量的使用注意点总结
2017/04/29 Python
在Python中使用AOP实现Redis缓存示例
2017/07/11 Python
Python中turtle作图示例
2017/11/15 Python
python按行读取文件,去掉每行的换行符\n的实例
2018/04/19 Python
Python文件读写常见用法总结
2019/02/22 Python
Python实现Singleton模式的方式详解
2019/08/08 Python
python os.path.isfile 的使用误区详解
2019/11/29 Python
python线程join方法原理解析
2020/02/11 Python
Python爬虫实现HTTP网络请求多种实现方式
2020/06/19 Python
Python基于staticmethod装饰器标示静态方法
2020/10/17 Python
如何利用Python matplotlib绘制雷达图
2020/12/21 Python
Kipling意大利官网:世界著名的时尚休闲包袋品牌
2019/06/05 全球购物
娱乐地球:Entertainment Earth
2020/01/08 全球购物
商务日语专业毕业生自荐信
2014/03/27 职场文书
琅琊山导游词
2015/02/05 职场文书