判断对象的类型? [复制]

2023-11-22

有没有一种简单的方法来确定变量是列表、字典还是其他变量?


有两个内置函数可以帮助您识别对象的类型。您可以使用type()如果您需要对象的确切类型,并且isinstance() to check对象的类型针对某物。通常,您想使用isinstance()大多数时候,因为它非常健壮并且还支持类型继承。


要获取对象的实际类型,可以使用内置的type()功能。将对象作为唯一参数传递将返回该对象的类型对象:

>>> type([]) is list
True
>>> type({}) is dict
True
>>> type('') is str
True
>>> type(0) is int
True

这当然也适用于自定义类型:

>>> class Test1 (object):
        pass
>>> class Test2 (Test1):
        pass
>>> a = Test1()
>>> b = Test2()
>>> type(a) is Test1
True
>>> type(b) is Test2
True

注意type()只会返回对象的直接类型,但无法告诉您有关类型继承的信息。

>>> type(b) is Test1
False

为了解决这个问题,您应该使用isinstance功能。这当然也适用于内置类型:

>>> isinstance(b, Test1)
True
>>> isinstance(b, Test2)
True
>>> isinstance(a, Test1)
True
>>> isinstance(a, Test2)
False
>>> isinstance([], list)
True
>>> isinstance({}, dict)
True

isinstance()通常是确保对象类型的首选方法,因为它也接受派生类型。因此,除非您确实需要类型对象(无论出于何种原因),否则使用isinstance()优先于type().

第二个参数为isinstance()还接受类型元组,因此可以一次检查多种类型。isinstance如果对象属于以下任何类型,则返回 true:

>>> isinstance([], (tuple, list, set))
True
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

判断对象的类型? [复制] 的相关文章

  • PyQt:如何通过匿名代理使用网页

    这真让我抓狂 我想在 QWebPage 中显示一个 url 但我想通过匿名代理来实现 Code setting up the proxy proxy QNetworkProxy proxy setHostName 189 75 98 199
  • Kivy - 文本换行工作错误

    我正在尝试在 Kivy 1 8 0 应用程序中换行文本 当没有太多文字时 一切正常 但如果文本很长并且窗口不是很大 它只是剪切文本 这是示例代码 vbox BoxLayout orientation vertical size hint y
  • Python从int到string的快速转换

    我正在用 python 求解大量阶乘 并发现当我完成计算阶乘时 需要相同的时间才能转换为字符串以保存到文件中 我试图找到一种将 int 转换为字符串的快速方法 我将举一个计算和 int 转换时间的例子 我正在使用通用的 a str a 但感
  • 希伯来语中的稀疏句子标记化错误

    尝试对希伯来语使用稀疏句子标记 import spacy nlp spacy load he doc nlp text sents list doc sents I get Warning no model found for he Onl
  • 如何使用显式引用转储 YAML?

    递归引用非常适合ruamel yaml or pyyaml ruamel yaml dump ruamel yaml load A A id001 id001 然而 它 显然 不适用于普通引用 ruamel yaml dump ruamel
  • 登录网站并使用 python 请求下载文件

    我有一个带有 HTML 表单的网站 登录后 它会将我带到 start php 站点 然后将我重定向到overview php 我想从该服务器下载文件 当我单击 ZIP 文件的下载链接时 链接后面的地址是 getimage php path
  • 可以用 Django 制作移动应用程序吗?

    我想知道我是否可以在我的网站上使用 Django 代码 并以某种方式在移动应用程序 Flutter 等框架中使用它 那么是否可以使用我现在拥有的 Django 后端并在移动应用程序中使用它 所以就像models views etc 是的 有
  • 二维数组作为字典的项目

    我想用一个项目的几个属性填充字典 例子 我正在考虑拥有Item 1 and Item 2 as Dictionary键与array这将保留其属性 我需要能够单独访问项目的每个属性 因此将它们连接为一个字符串不是一种选择 我正在考虑类似下面的
  • Python Pandas 根据另一列的总计从另一个数据帧中选择值

    我下面有一个 DataFrame 但我需要根据取消和订单列从每个代码中选择行 假设代码 xxx 的阶数为 6 1 5 1 阶数为 11 我需要一种算法 可以选择满足总共 11 行的行 阶数为 6 5 如果没有行匹配 则选择最接近的 id 并
  • 使用 scipy curve_fit 拟合噪声指数的建议?

    我正在尝试拟合通常按以下方式建模的数据 def fit eq x a b c d e return a 1 np exp x b c np exp x d e x np arange 0 100 0 001 y fit eq x 1 1 1
  • 为什么我无法在 Mac OS X Terminal.app 上的 Python 解释器中显示 unicode 字符?

    如果我尝试粘贴 unicode 字符 例如中间的点 在我的 python 解释器中它什么也不做 我在 Mac OS X 上使用 Terminal app 当我只是在 bash 中时 我没有遇到任何问题 但在解释器中 python Pytho
  • Pandas 滚动窗口 Spearman 相关性

    我想使用滚动窗口计算 DataFrame 两列之间的 Spearman 和 或 Pearson 相关性 我努力了df corr df col1 rolling P corr df col2 P为窗口尺寸 但我似乎无法定义该方法 添加meth
  • 如何使用 Django 项目设置 SQLite?

    我已阅读 Django 文档 仅供参考 https docs djangoproject com en 1 3 intro tutorial01 https docs djangoproject com en 1 3 intro tutor
  • 具有屏蔽无效值的 pcolormesh

    我试图将一维数组绘制为 pcolormesh 因此颜色沿 x 轴变化 但每个 x 的 y 轴保持不变 但我的数据有一些错误值 因此我使用屏蔽数组和自定义颜色图 其中屏蔽值设置为蓝色 import numpy as np import mat
  • Pandas style.bar 颜色基于条件?

    如何渲染其中一列的 Pandas dfstyle bar color属性是根据某些条件计算的 Example df style bar subset before after color ff781c vmin 0 0 vmax 1 0 而
  • 如何将回溯/sys.exc_info() 值保存在变量中?

    我想将错误名称和回溯详细信息保存到变量中 这是我的尝试 import sys try try print x except Exception ex raise NameError except Exception er print 0 s
  • 处理大文件的最快方法?

    我有多个 3 GB 制表符分隔文件 每个文件中有 2000 万行 所有行都必须独立处理 任何两行之间没有关系 我的问题是 什么会更快 逐行阅读 with open as infile for line in infile 将文件分块读入内存
  • 如何使用 matplotlib 为圆柱体的每个单独面添加颜色

    我正在尝试为圆柱体的每个面着色 但是我不确定如何进行 我尝试了以下方法 for i in range 10 col append for i in range 10 for j in range 20 col i append plt cm
  • Python:高精度time.sleep

    你能告诉我如何在 Win32 和 Linux 上的 Python 2 6 中获得高精度睡眠函数吗 您可以在中使用浮点数sleep http docs python org library time html time sleep 该参数可以
  • 如何为所有用户安装 Anaconda python?

    Anaconda python 发行版 https store continuum io cshop anaconda 非常方便地部署科学计算环境 SCE 并根据需要切换python版本 默认情况下 安装会将 python 定位到 anac

随机推荐

  • Android的BaseAdapter是适配器模式的一个例子吗?

    Android 类 BaseAdapter 的名称中包含 Adapter 是因为它遵循 Adapter 模式还是只是巧合 来自维基百科 在计算机编程中 适配器模式 通常称为 包装器模式或简称为包装器 是一种设计模式 将类的一个接口转换为兼容
  • com_error: (-2147352567, '发生异常。', (0, 无, 无, 无, 0, -2147024809), 无)

    从 Excel 工作表生成 pdf 时 我收到以下错误 ws ExportAsFixedFormat 0 save as File
  • 在 Python 中使用对象 id 作为对象的哈希值

    使用该对象是否明智id作为哈希键 通过 hash 能够为程序的单个实例对可变对象进行哈希处理 使用对象属性会更好 但它们都是可变的并且可以更改 我在看时想到了这一点实例集我想知道这是否明智 是的 只要您还定义 eq 并且大概 ne 与此一致
  • 并行流非并发无序收集器

    假设我有这个自定义收集器 public class CustomToListCollector
  • WPF:如何从 Fonts.SystemFontFamilies 中过滤掉非罗马字体?

    我知道如何使用几行 XAML 创建一个 WPF 字体选择器 绑定到Fonts SystemFontFamilies 感谢 Norris Cheng 的精彩博客文章 但我不知道如何过滤掉所有国际和其他非罗马字母字体系列 我的用户不太可能需要
  • Roxygen 真的可以像 Doxygen 对 C++ 那样记录 R 脚本(而不是包)吗?

    Roxygen 的灵感来自 C C 程序员使用的 Doxygen 文档系统 我使用过 Doxygen 我发现只要有 doxygen 注释 记录任何程序都非常容易 它还生成函数和类的调用图 我认为 roxygen 会以同样的方式工作 但是当我
  • Grails sql 查询

    想象一下我有这样的东西 def example def temp ConferenceUser findAllByUser User get session user temp temp 解释我的问题 虽然动态查找器非常易于使用且学习速度很
  • 如何在Python中获取文本字符串的视觉长度

    如同这个问题 我不是问如何查找字符串中的字符数 我想确定渲染时字符串的视觉长度或将其与另一个字符串进行比较 例如 iiii 和 WWWW 都有四个字符 然而 iiii 在视觉上更短 我知道这是由字体决定的 并且我不使用等宽字体 因此 为了解
  • 如何修改运行时加载的 DLL 的导入地址表

    我想挂钩在运行时从加载的 DLL 调用的函数 我使用了 Windows Via C C 一书中的 CAPIHook 类 DLL 注入由 Install System Wide hook 完成 The hooking 由修改 IAT 完成 但
  • 如何填充 UIView 的背景图片

    我有一个UIView我这样设置背景图片 self view backgroundColor UIColor colorWithPatternImage UIImage imageNamed sfond appz png 我的问题是背面图像不
  • 从技术上讲,是否可以通过编程方式截取网站的屏幕截图?

    您认为以编程方式截取网站的屏幕截图在技术上可行吗 我想制作一个计划的 Python 任务来抓取网站列表并截取它们的主页屏幕截图 您认为技术上可行吗 或者您是否知道提供此类服务的第三方网站 Input url gt Output screen
  • “借用的数据不能存储在其封闭之外”是什么意思?

    编译以下代码时 fn main let mut fields Vec new let pusher mut a str fields push a 编译器给我以下错误 error borrowed data cannot be stored
  • python-docx:将表解析为 Pandas Dataframe

    我正在使用python docx用于提取 MS Word 文档的库 我可以使用同一个库从Word文档中获取所有表格 但是 我想将表解析为 panda 数据框架 是否有任何内置功能可以用来将表解析为数据框架 或者我必须手动执行此操作 另外 是
  • 如何处理同构呈现形式的早期输入

    我有一个 React 应用程序 其中包含一个表单 该表单在服务器端呈现 并预先填充了用户正在进行的工作 问题是 如果用户在应用程序加载之前编辑表单中的值 则应用程序不会意识到更改 当用户保存时 服务器呈现的未更改的数据将被重新保存 并且用户
  • EventSource:总是出现错误

    首先EventSourceAPI 我写了最学术的例子 问题是我总是遇到错误 而且找不到任何有用的信息 当我加载时home html JS脚本停止于source onerror 我将其打印到控制台 但分析对象时我找不到任何错误类型或消息 所以
  • Laravel:vue 组件未渲染

    尽管遵循了以下教程 但我的 vue 组件并未在页面上呈现 我有以下布局 master blade php
  • 如何导航到父活动

    好吧 当我在做某事并且我需要在我的应用程序中配置操作栏时 我从http developer android com我找到了我要找的东西 public boolean onOptionsItemSelected MenuItem item s
  • geom_bar 的 gganimate 问题?

    自从 David Robinson 发布了他的 gganimate 包以来 我一直怀着羡慕和钦佩的心情看着 Twitter 上出现的各种 ggplot 动画 并认为我自己也可以玩一玩 我在使用 geom bar 时遇到 gganimate
  • firefox @font-face 因 fontawesome 失败

    我在运行的 OSS 应用程序上使用 FontAwesome 字体 但我似乎无法通过 Firefox 的字体清理程序 这些文件都在同一个域中提供 路径是正确的 我使用的是 FontAwesome 的官方 css 当通过其网站和本地文档提供时
  • 判断对象的类型? [复制]

    这个问题在这里已经有答案了 有没有一种简单的方法来确定变量是列表 字典还是其他变量 有两个内置函数可以帮助您识别对象的类型 您可以使用type 如果您需要对象的确切类型 并且isinstance to check对象的类型针对某物 通常 您