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中的logger模块全面讲解
Apr 28 Python
Python利用openpyxl库遍历Sheet的实例
May 03 Python
Python实现的简单排列组合算法示例
Jul 04 Python
解读python如何实现决策树算法
Oct 11 Python
Python Numpy:找到list中的np.nan值方法
Oct 30 Python
Python可迭代对象操作示例
May 07 Python
解决py2exe打包后,总是多显示一个DOS黑色窗口的问题
Jun 21 Python
python 批量添加的button 使用同一点击事件的方法
Jul 17 Python
简单了解python变量的作用域
Jul 30 Python
Django admin model 汉化显示文字的实现方法
Aug 12 Python
Python 限定函数参数的类型及默认值方式
Dec 24 Python
Django REST 异常处理详解
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
基于mysql的bbs设计(二)
2006/10/09 PHP
一步一步学习PHP(8) php 数组
2010/03/05 PHP
php开发中的页面跳转方法总结
2015/04/26 PHP
PHP导入导出Excel代码
2015/07/07 PHP
Cookie跨域问题解决方案代码示例
2020/11/24 PHP
JavaScript两种跨域技术全面介绍
2014/04/16 Javascript
javascript检查浏览器是否已经启用XX功能
2015/07/10 Javascript
js实现n秒倒计时后才可以点击的效果
2015/12/20 Javascript
基于jquery实现弹幕效果
2016/09/29 Javascript
D3.js封装文本实现自动换行和旋转平移等功能
2016/10/14 Javascript
jQuery Ajax 实现分页 kkpager插件实例代码
2017/08/10 jQuery
基于angular6.0实现的一个组件懒加载功能示例
2018/04/12 Javascript
Angular6中使用Swiper的方法示例
2018/07/09 Javascript
Vue响应式原理Observer、Dep、Watcher理解
2019/06/06 Javascript
jQuery zTree树插件的使用教程
2019/08/16 jQuery
解决Vue中使用keepAlive不缓存问题
2020/08/04 Javascript
python数组复制拷贝的实现方法
2015/06/09 Python
Python使用Scrapy保存控制台信息到文本解析
2017/12/27 Python
python实现图书借阅系统
2019/02/20 Python
django之静态文件 django 2.0 在网页中显示图片的例子
2019/07/28 Python
Python绘图实现显示中文
2019/12/04 Python
Python使用tkinter制作在线翻译软件
2021/02/22 Python
请解释在new与override的区别
2012/10/29 面试题
日语系毕业生推荐信
2013/11/11 职场文书
农救科工作职责
2013/11/27 职场文书
后勤采购员岗位职责
2013/12/19 职场文书
八年级数学教学反思
2014/01/31 职场文书
音乐教师求职信
2014/06/28 职场文书
社区党的群众路线教育实践活动领导班子对照检查材料
2014/09/25 职场文书
春秋淹城导游词
2015/02/11 职场文书
2015年保卫科工作总结
2015/05/14 职场文书
党员转正党支部意见
2015/06/02 职场文书
2016年清明节期间群众祭祀活动工作总结
2016/04/01 职场文书
Mysql基础之常见函数
2021/04/22 MySQL
CSS3中Animation实现简单的手指点击动画的示例
2021/07/15 HTML / CSS
python神经网络ResNet50模型
2022/05/06 Python