Python对象信息获取函数详解:type()、isinstance()、dir()
19 浏览量
更新于2024-08-30
收藏 124KB PDF 举报
Python 获取对象信息的函数 type()、isinstance()、dir()
Python 中有多种方式可以获取对象的信息,其中包括 type()、isinstance() 和 dir() 函数,这三个函数分别可以判断对象的类型、判断对象是否是某个类的实例、获取对象的所有属性和方法。
type() 函数
type() 函数可以判断对象的类型,如果一个变量指向了函数或类,也可以用 type() 判断。例如:
```
class Student(object):
name = 'Student'
a = Student()
print(type(123)) # 输出:<class 'int'>
print(type('abc')) # 输出:<class 'str'>
print(type(None)) # 输出:<class 'NoneType'>
print(type(abs)) # 输出:<class 'builtin_function_or_method'>
print(type(a)) # 输出:<class '__main__.Student'>
```
可以看到,type() 函数返回的是对象的类型。我们可以在 if 语句中判断比较两个变量的 type 类型是否相同。例如:
```
class Student(object):
name = 'Student'
a = Student()
if type(123) == type(456):
print("True") # 输出:True
```
types 模块
如果要判断一个对象是否是函数怎么办?我们可以使用 types 模块中定义的常量。types 模块中提供了四个常量:types.FunctionType、types.BuiltinFunctionType、types.LambdaType、types.GeneratorType,分别代表函数、内建函数、匿名函数、生成器类型。例如:
```
import types
def fn():
pass
print(type(fn) == types.FunctionType) # 输出:True
print(type(abs) == types.BuiltinFunctionType) # 输出:True
print(type(lambda x: x) == types.LambdaType) # 输出:True
print(type((x for x in range(10))) == types.GeneratorType) # 输出:True
```
isinstance() 函数
对于有继承关系的类,我们要判断该类的类型,可以使用 isinstance() 函数。例如:
```
class Animal(object):
def run(self):
print("动物在跑")
class Dog(Animal):
def eat(self):
print("狗在吃")
class Cat(Animal):
def run(self):
print("猫在跑")
dog1 = Dog()
cat1 = Cat()
print(isinstance(dog1, Dog)) # 输出:True
print(isinstance(dog1, Animal)) # 输出:True
print(isinstance(cat1, Cat)) # 输出:True
print(isinstance(cat1, Animal)) # 输出:True
```
可以看到,isinstance() 函数可以判断对象是否是某个类的实例。
dir() 函数
dir() 函数可以获取对象的所有属性和方法。例如:
```
class Student(object):
name = 'Student'
a = Student()
print(dir(a)) # 输出:['__class__', '__delattr__', '__dict__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__le__', '__lt__', '__module__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', '__weakref__', 'name']
```
可以看到,dir() 函数返回的是对象的所有属性和方法。
type()、isinstance() 和 dir() 函数可以帮助我们获取对象的信息,从而更好地理解和使用 Python 对象。
2023-03-17 上传
2022-10-30 上传
715 浏览量
517 浏览量
1407 浏览量
268 浏览量
297 浏览量
2024-02-22 上传
152 浏览量

weixin_38670391
- 粉丝: 7
最新资源
- Premiere Pro CS6视频编辑项目教程微课版教案
- SSM+Lucene+Redis搜索引擎缓存实例解析
- 全栈打字稿应用:演示项目实践与探索
- 仿Windows风格的AJAX无限级树形菜单实现教程
- 乐华2025L驱动板通用升级解决方案
- Java通过jcraft实现SFTP文件上传下载教程
- TTT素材-制造1资源包介绍与记录
- 深入C语言编程技巧与实践指南
- Oracle数据自动导出并转换为Excel工具使用教程
- Ubuntu下Deepin-Wine容器的使用与管理
- C语言网络聊天室功能详解:禁言、踢人与群聊
- AndriodSituationClick事件:详解按钮点击响应机制
- 探索Android-NetworkCue库:高效的网络监听解决方案
- 电子通信毕业设计:简易电感线圈制作方法
- 兼容性数据库Compat DB 4.2.52-5.1版本发布
- Android平台部署GNU Linux的新方案:dogeland体验