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 相关文章推荐
Pthon批量处理将pdb文件生成dssp文件
Jun 21 Python
python数组过滤实现方法
Jul 27 Python
使用Python判断质数(素数)的简单方法讲解
May 05 Python
详解Python 正则表达式模块
Nov 05 Python
Flask之请求钩子的实现
Dec 23 Python
python从入门到精通 windows安装python图文教程
May 18 Python
分享一个pycharm专业版安装的永久使用方法
Sep 24 Python
pytorch如何冻结某层参数的实现
Jan 10 Python
python函数定义和调用过程详解
Feb 09 Python
python判断变量是否为列表的方法
Sep 17 Python
详解KMP算法以及python如何实现
Sep 18 Python
Django程序的优化技巧
Apr 29 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的Yii框架中的event事件机制
2016/03/17 PHP
PHP实现字符串翻转功能的方法【递归与循环算法】
2017/11/03 PHP
PHP保留两位小数的几种方法
2019/07/24 PHP
iframe的onload在Chrome/Opera中执行两次Bug的解决方法
2011/03/17 Javascript
Javascript 闭包引起的IE内存泄露分析
2012/05/23 Javascript
jquery写个checkbox——类似邮箱全选功能
2013/03/19 Javascript
Jquery实现网页跳转或用命令打开指定网页的解决方法
2013/07/09 Javascript
JSON无限折叠菜单编写实例
2013/12/16 Javascript
js数组依据下标删除元素
2015/04/14 Javascript
JS用斜率判断鼠标进入DIV四个方向的方法
2016/11/07 Javascript
解析如何利用iframe标签以及js制作时钟
2016/12/08 Javascript
JS身份证信息验证正则表达式
2017/06/12 Javascript
Echarts基本用法_动力节点Java学院整理
2017/08/11 Javascript
ES6 中可以提升幸福度的小功能
2018/08/06 Javascript
VUE脚手架具体使用方法
2019/05/20 Javascript
解决layui的radio属性或别的属性没显示出来的问题
2019/09/26 Javascript
详解element-ui级联菜单(城市三级联动菜单)和回显问题
2019/10/02 Javascript
element-ui tree结构实现增删改自定义功能代码
2020/08/31 Javascript
[48:47]VGJ.S vs NB 2018国际邀请赛小组赛BO2 第一场 8.18
2018/08/19 DOTA
教大家玩转Python字符串处理的七种技巧
2017/03/31 Python
Python队列的定义与使用方法示例
2017/06/24 Python
pandas中Timestamp类用法详解
2017/12/11 Python
Python的UTC时间转换讲解
2019/02/26 Python
在pandas中遍历DataFrame行的实现方法
2019/10/23 Python
Django 博客实现简单的全文搜索的示例代码
2020/02/17 Python
python对文件的操作方法汇总
2020/02/28 Python
Python selenium使用autoIT上传附件过程详解
2020/05/26 Python
高清屏中使用Canvas绘图出现模糊的问题及解决方法
2019/06/03 HTML / CSS
国贸专业个人求职信范文
2014/01/08 职场文书
鸡毛信观后感
2015/06/11 职场文书
2016抗战胜利71周年红领巾广播稿
2015/12/18 职场文书
java设计模式--三种工厂模式详解
2021/07/21 Java/Android
Python实战之大鱼吃小鱼游戏的实现
2022/04/01 Python
vue封装数字翻牌器
2022/04/20 Vue.js
Smart 2 车辆代号 HC11 全新谍照曝光
2022/04/21 数码科技
openGauss数据库JDBC环境连接配置的详细过程(Eclipse)
2022/06/01 Java/Android