Python自省 type(),dir(),getattr(),hasattr(),isinstance().

本文介绍了Python中的自省特性,即程序在运行时能够获取对象的类型信息。通过使用type()、isinstance()等内置函数,可以实现对不同类型的对象进行类型检查。文章通过实例演示了如何使用这些函数。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Python自省

这个也是python彪悍的特性.

自省就是面向对象的语言所写的程序在运行时,所能知道对象的类型.简单一句就是运行时能够获得对象的类型.比如type(),dir(),getattr(),hasattr(),isinstance().

a = [1,2,3]
b = {'a':1,'b':2,'c':3} c = True print type(a),type(b),type(c) # <type 'list'> <type 'dict'> <type 'bool'> print isinstance(a,list) # True

转载于:https://www.cnblogs.com/xuxueqin/p/8066034.html

以下是基于已知引用内容以及专业知识总结的 Python 常见函数和功能列表: ### Python 77个常用函数或功能 #### 数据处理类 1. `append()`:向列表末尾添加单个元素[^3]。 2. `extend()`:将一个可迭代对象的内容扩展到列表中[^3]。 3. `insert(index, element)`:在指定索引处插入元素[^3]。 4. `pop(index)`:移除并返回指定索引的元素;默认移除最后一个元素[^3]。 5. `remove(value)`:移除第一个匹配的值[^3]。 6. `clear()`:清除列表中的所有元素。 7. `count(value)`:统计某值在列表中出现的次数。 8. `index(value[, start[, end]])`:找到某个值首次出现的位置[^3]。 9. `sort(reverse=False)`:对列表进行就地排序。 10. `reverse()`:反转列表中的元素顺序。 #### 字符串操作类 11. `split(separator=None)`:按分隔符分割字符串[^4]。 12. `join(iterable)`:连接序列中的元素为一个新的字符串[^4]。 13. `strip(chars=None)`:去除字符串两端的空白字符[^4]。 14. `lstrip(chars=None)`:仅去掉左侧空白字符[^4]。 15. `rstrip(chars=None)`:仅去掉右侧空白字符[^4]。 16. `replace(old, new[, count])`:替换旧子串为新子串。 17. `find(substring[, start[, end]])`:查找子串第一次出现的位置。 18. `rfind(substring[, start[, end]])`:从右往左查找子串最后一次出现的位置。 19. `startswith(prefix[, start[, end]])`:检查字符串是否以特定前缀开头[^4]。 20. `endswith(suffix[, start[, end]])`:检查字符串是否以特定后缀结尾。 21. `lower()`:转换字符串为小写。 22. `upper()`:转换字符串为大写。 23. `capitalize()`:首字母大写其余小写[^4]。 24. `title()`:每个单词首字母大写[^4]。 #### 数学计算类 25. `abs(x)`:获取绝对值。 26. `pow(base, exp[, mod])`:求幂次方。 27. `round(number[, ndigits])`:四舍五入取整[^4]。 28. `max(iterable, *args)`:找出最大值[^4]。 29. `min(iterable, *args)`:找出最小值。 30. `sum(iterable[, start])`:累加序列中的元素[^4]。 #### 类型转换类 31. `int(x)`:将其他类型转化为整数[^4]。 32. `float(x)`:将其他类型转化为浮点数。 33. `str(object)`:将对象转化为字符串。 34. `bool(x)`:将其他类型转化为布尔值[^4]。 35. `complex(real, imag)`:创建复数。 36. `list(iterable)`:将可迭代对象转化为列表[^4]。 37. `tuple(iterable)`:将可迭代对象转化为元组[^4]。 38. `set(iterable)`:将可迭代对象转化为集合[^4]。 39. `dict(mapping_or_iterable_of_pairs)`:将映射或者键值对转化为字典。 #### 输入输出类 40. `print(*objects, sep=' ', end='\n')`:打印输出。 41. `input(prompt='')`:接收用户输入。 #### 流程控制类 42. `if condition:`:条件分支结构[^4]。 43. `for item in iterable:`:遍历循环。 44. `while condition:`:当满足条件时持续运行循环[^4]。 45. `break`:终止当前最近一层循环[^4]。 46. `continue`:跳过当前循环剩余部分,进入下一轮循环。 47. `range(start, stop[, step])`:生成一系列连续数字[^4]。 #### 文件操作类 48. `open(file, mode='r', encoding=None)`:打开文件。 49. `close()`:关闭文件流[^4]。 50. `read(size=-1)`:读取文件内容。 51. `write(string)`:写入字符串至文件。 52. `seek(offset, whence=0)`:移动文件指针位置[^4]。 53. `tell()`:报告当前位置偏移量[^4]。 #### 高级特性类 54. `zip(*iterables)`:将多个可迭代对象打包成一个个元组形式[^4]。 55. `enumerate(iterable, start=0)`:枚举可迭代对象及其索引[^4]。 56. `map(function, iterable)`:应用函数于每一个项[^4]。 57. `filter(function or None, iterable)`:过滤掉不符合条件的项目。 58. `reduce(function, sequence)`:累积作用于序列上的两两结果 (需导入 functools)[^4]。 59. `lambda arguments: expression`:匿名函数定义。 #### 反射与自省类 60. `type(object)`:返回对象的具体类型。 61. `isinstance(obj, classinfo)`:测试实例是否属于某种类型[^4]。 62. `getattr(object, name[, default])`:访问属性名对应的值。 63. `setattr(object, name, value)`:设置属性名为对应的新值[^4]。 64. `hasattr(object, name)`:检测是否存在该名称的属性。 65. `dir([object])`:列出模块/对象的所有有效成员。 #### 时间日期类 66. `time.time()`:返回当前时间戳[^4]。 67. `datetime.datetime.now()`:获取本地当前时间和日期。 68. `date.strftime(format)`:格式化显示日期。 69. `timedelta(days=0, seconds=0,...)`:用于表示两个日期之间的时间差。 #### 错误异常类 70. `try...except Exception as e:`:捕获错误并处理。 71. `raise exception_instance`:主动抛出异常。 72. `assert condition [, message]`:断言表达式成立。 #### 迭代器工具类 73. `next(iterator[, default])`:获取下一个元素[^4]。 74. `iter(o[, sentinel])`:创建迭代器对象[^4]。 #### 其他实用方法 75. `len(s)`:测量长度或大小。 76. `hash(object)`:返回哈希值。 77. `help(object)`:调用在线帮助系统[^4]。 ```python # 示例代码展示如何使用一些常见函数 numbers = [3, 1, 4, 2] sorted_numbers = sorted(numbers) # 使用 sorted 函数排序 print(f"Sorted numbers are {sorted_numbers}") text = "hello world" words = text.split(' ') # 使用 split 方法拆分字符串 joined_text = '-'.join(words) # 使用 join 方法重新组合字符串 print(joined_text) number_list = [] number_list.append(5) # 添加元素到列表 number_list.extend([6, 7]) # 扩展列表内容 print(number_list) ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值