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 相关文章推荐
使用C语言来扩展Python程序和Zope服务器的教程
Apr 14 Python
python中函数传参详解
Jul 03 Python
使用python的pandas库读取csv文件保存至mysql数据库
Aug 20 Python
学生信息管理系统Python面向对象版
Jan 30 Python
解决Python中pandas读取*.csv文件出现编码问题
Jul 12 Python
详解python中index()、find()方法
Aug 29 Python
python各层级目录下import方法代码实例
Jan 20 Python
Python动态导入模块和反射机制详解
Feb 18 Python
Python matplotlib修改默认字体的操作
Mar 05 Python
Python3操作读写CSV文件使用包过程解析
Apr 10 Python
python压包的概念及实例详解
Feb 17 Python
python字符串拼接.join()和拆分.split()详解
Nov 23 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
工厂模式在Zend Framework中应用介绍
2012/07/10 PHP
基于PHP生成静态页的实现方法
2013/05/10 PHP
php创建session的方法实例详解
2015/01/27 PHP
浅谈php的优缺点
2015/07/14 PHP
PHP中的Session对象如何使用
2015/09/25 PHP
php根据用户语言跳转相应网页
2015/11/04 PHP
PHP实现下载远程图片保存到本地的方法
2017/06/19 PHP
javascript add event remove event
2008/04/07 Javascript
JavaScript之引用类型介绍
2012/08/10 Javascript
js/jquery解析json和数组格式的方法详解
2014/01/09 Javascript
利用jquery动画特效和css打造的侧边弹出垂直导航
2014/04/04 Javascript
javascript函数声明和函数表达式区别分析
2014/12/02 Javascript
Javascript控制input输入时间格式的方法
2015/01/28 Javascript
js实现右下角提示框的方法
2015/02/03 Javascript
Javascript发送AJAX请求实例代码
2016/08/21 Javascript
NodeJS和BootStrap分页效果的实现代码
2016/11/07 NodeJs
使用bootstrap插件实现模态框效果
2017/05/10 Javascript
vue初始化动画加载的实例
2018/09/01 Javascript
详解Angular中实现自定义组件的双向绑定的两种方法
2018/11/23 Javascript
详解vue组件中使用路由方法
2019/02/12 Javascript
详解Nuxt.js中使用Element-UI填坑
2019/09/06 Javascript
node.js域名解析实现方法详解
2019/11/05 Javascript
JavaScript适配器模式原理与用法实例详解
2020/03/09 Javascript
[02:50]2014DOTA2 TI预选赛预选赛 大神专访第一弹!
2014/05/21 DOTA
Python实现栈的方法
2015/05/26 Python
python的pstuil模块使用方法总结
2019/07/26 Python
python中enumerate() 与zip()函数的使用比较实例分析
2019/09/03 Python
python:目标检测模型预测准确度计算方式(基于IoU)
2020/01/18 Python
详解CSS3中常用的样式【基本文本和字体样式】
2020/10/20 HTML / CSS
会计专业个人求职信范文
2014/01/08 职场文书
交通安全标语
2014/06/06 职场文书
标准离婚协议书(2014版)
2014/10/05 职场文书
校园新闻广播稿5篇
2014/10/10 职场文书
党员检讨书
2014/10/13 职场文书
MySQL Shell import_table数据导入的实现
2021/08/07 MySQL
面试中老生常谈的MySQL问答集锦夯实基础
2022/03/13 MySQL