python特殊函数(id, dir, type, isinstance, issubclass, is)
2015-06-22 22:51
906 查看
内置函数
id()如果我们能获取对象(变量、方法或类型实例)的 "内存地址" 对于我们了解引用机制还是非常不错的。
id() 返回一个对象的 "唯一序号",转换成 16 进制就是所谓的内存地址了,为了图方便后面直接使用 id(),不再转换成 16 进制。
dir()方法 dir() 能帮我们了解对象包含哪些成员。
[/code]
id()如果我们能获取对象(变量、方法或类型实例)的 "内存地址" 对于我们了解引用机制还是非常不错的。
id() 返回一个对象的 "唯一序号",转换成 16 进制就是所谓的内存地址了,为了图方便后面直接使用 id(),不再转换成 16 进制。
>>>>>> def Foo(): pass >>>>>> Foo <function Foo at 0x00DC6EB0> >>>>>> hex(id(Foo)) '0xdc6eb0' >>>>>>
dir()方法 dir() 能帮我们了解对象包含哪些成员。
>>>>>> dir(Foo) ['__call__', '__class__', '__delattr__', '__dict__', '__doc__', '__get__', '__getattribute__', '__hash__', '__init__', '__module__', '__name__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__str__', 'func_closure', 'func_code', 'func_defaults', 'func_dict', 'func_doc', 'func_globals', 'func_name'] >>>>>> type()type() 让我们知道变量的实际类型。 [code]>>>>>> type(Foo) <type 'function'> >>>>>>isinstance()isinstance() 可以确认某个变量是否某种类型。
>>>>>> s = "Xwy2.com" >>>>>> isinstance(s, str) True >>>>>>issubclass()该函数可以判断继承关系。
>>>>>> issubclass(int,object) True >>>>>>is多数情况下,我们可以直接使用 "==" 来判断两个对象是否相等。但 Python 同样支持运算符重载,因此使用 is 来代替应该更安全一点(C# 中经典的 Equals 问题)。
>>>>>> class MyClass: def __ini__(Self): self.x = 123 def __eq__(self, o): return self.x == o.x >>>>>> a = MyClass() >>>>>> b = MyClass() >>>>>> print hex(id(a)) 0xdcea80 >>>>>> print hex(id(b)) 0xdc4b98 >>>>>> print a == b true >>>>>> print a is b false
[/code]
相关文章推荐
- web python -- WSGI接口POST请求
- web python -- WSGI接口GET请求
- python相关面试题
- web python -- WSGI接口响应
- Python数据类型之数字类型、字符串类型
- python日志输出—logging直接代码配置
- 首部讲Python爬虫电子书 Web Scraping with Python
- 关于Python报错:SyntaxError: Non-ASCII character '\xe5' in file的解决方法
- python watchdog
- python 使用post登录网易
- web python -- WSGI接口
- python爬取网易美女图片
- Python 爬虫学习 相关类库的介绍
- Python学习 之 对内存的使用(浅拷贝和深拷贝)
- Python学习 之 爬虫
- (翻译)如何对python dict 类型按键(keys)或值(values)排序
- python bottle框架使用beaker支持session
- python 连接mysql多层结构实例
- Python学习 之 正则表达式
- Python运算符及表达式