isinstance('aaa', basestring) 和 isinstance('aaa', str) 有什么区别?

2024-02-18

a='aaaa'
print isinstance(a, basestring)#true
print isinstance(a, str)#true

在 3.0 之前的 Python 版本中,有两种字符串“纯字符串”和“unicode 字符串”。纯字符串 (str) 不能表示拉丁字母以外的字符(为简单起见,忽略代码页的详细信息)。 Unicode 字符串 (unicode) 可以表示任何字母表中的字符,包括一些虚构的字母表,例如克林贡语。

那么为什么有两种字符串,只使用 Unicode 不是更好吗,因为这样可以涵盖所有情况?好吧,最好只使用 Unicode,但 Python 是在 Unicode 成为表示字符串的首选方法之前创建的。在一个有很多用户的语言中,字符串类型的转换是需要时间的,在Python 3.0中终于实现了所有字符串都是Unicode的。

3.0之前的Python字符串的继承层次是:

          object
             |
             |
         basestring
            / \
           /   \
         str  unicode

Python 2.3 中引入的 'basestring' 可以被认为是朝着字符串统一方向迈出的一步,因为它可以用来检查一个对象是否是以下对象的实例str or unicode

>>> string1 = "I am a plain string"
>>> string2 = u"I am a unicode string"
>>> isinstance(string1, str)
True
>>> isinstance(string2, str)
False
>>> isinstance(string1, unicode)
False
>>> isinstance(string2, unicode)
True
>>> isinstance(string1, basestring)
True
>>> isinstance(string2, basestring)
True
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

isinstance('aaa', basestring) 和 isinstance('aaa', str) 有什么区别? 的相关文章

  • 漂亮的地图打印机会抛出类型错误

    我已经使用配置了漂亮的打印机http wiki eclipse org CDT User FAQ How can I inspect the contents of STL containers 3F http wiki eclipse o
  • 将 Poetry 与 PyEnv 一起使用并遇到 Python 版本问题

    我正在使用 WSL2 Ubuntu 我一直在学习使用 Fastapi 进行后端 API 开发的课程 我相信我的 Ubuntu 默认 python 是 3 8 我正在尝试使用 python 3 10 0 进行开发 我做了以下事情 pyenv安
  • 在Python中不断寻找用户输入

    我将如何编写一个始终寻找用户输入的 Python 程序 我想我希望有一个等于输入的变量 然后根据该变量的等于值会发生不同的情况 因此 如果变量是 w 那么它将执行某个命令并继续执行 直到收到另一个输入 例如 d 然后会发生不同的情况 但直到
  • 如何生成大型网站的图形站点地图[关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我想为我的网站生成图形站点地图 据我所知 有两个阶段 抓取网站并分析链接关系 提取树形结构 生成视觉上
  • 如何计算查询集中每个项目的两个字段的总和

    假设我有以下模型结构 class SomeModel Model base price DecimalField commision DecimalField 我不想存储total price在我的数据库中为了数据一致性并希望将其计算为ba
  • 如何在seaborn中绘制离散变量的分布图

    当我画画的时候displot对于离散变量 分布可能不像我想象的那样 例如 We can find that there are crevices in the barplot so that the curve in kdeplot is
  • 在 Python 中使用类作为命名空间是个好主意吗

    我正在将一堆相关的东西放入一个类中 主要目的是将它们组织到命名空间中 class Direction north 0 east 1 south 2 west 3 staticmethod def turn right d return tu
  • 从 Spark 数据帧中过滤大量 ID

    我有一个大型数据框 其格式类似于 ID Cat date 12 A 201602 14 B 201601 19 A 201608 12 F 201605 11 G 201603 我需要根据大约 500 万个 Is 的列表来过滤行 最直接的方
  • 多个列表和大小的所有可能排列

    在 python 中使用以下命令很容易计算简单的排列itertools permutations https docs python org 3 library itertools html itertools permutations 你
  • python lxml 使用iterparse编辑并输出xml

    我已经在 lxml 库上摆弄了一段时间了 也许我没有正确理解它 或者我错过了一些东西 但我似乎无法弄清楚在捕获某个 xpath 后如何编辑文件并且然后能够在逐个元素解析时将其写回到 xml 中 假设我们有这个 xml 作为示例
  • 使用 os.forkpty() 创建一个伪终端以 ssh 到远程服务器并与其通信

    我正在尝试编写一个 python 脚本 它可以 ssh 到远程服务器 并可以从 python 客户端执行 ls cd 等简单命令 但是 在成功 ssh 到服务器后 我无法读取伪终端的输出 任何人都可以在这里帮助我 以便我可以在服务器上执行一
  • 在 Python 中将嵌套字典位置作为参数传递

    如果我有一个嵌套字典 我可以通过索引来获取键 如下所示 gt gt gt d a b c gt gt gt d a b c 我可以将该索引作为函数参数传递吗 def get nested value d path a b return d
  • 在 matplotlib 中将 3D 背景更改为黑色

    我在将 3D 图表的背景更改为黑色时遇到问题 这是我当前的代码 当我将facecolor设置为黑色时 它会将图表内部更改为灰色 这不是我想要的 fig plt figure fig set size inches 10 10 ax plt
  • 列表中的“u”是什么意思?

    这是我第一次遇到这种情况 刚刚打印了一个列表 每个元素似乎都有一个u在它前面 即 u hello u hi u hey 它是什么意思 为什么列表的每个元素前面都会有这个 由于我不知道这种情况有多常见 如果您想了解我是如何遇到它的 我会很乐意
  • datetime strftime 不输出正确的时间戳

    下列 gt gt gt from dateutil parser import parse gt gt gt parse 2013 07 02 00 00 00 0000 datetime datetime 2013 7 2 0 0 tzi
  • 给定一个字符串,如何删除所有重复的连续字母?

    如何从字符串中删除两个连续的字母 例如 a str hii thherre 应该成为 hi there 我尝试这样做 a str join sorted set a str key a str index 但是 我得到 hi ter 是的
  • Django 按小时过滤

    我找到了那个链接 http code djangoproject com attachment ticket 8424 time filters diff http code djangoproject com attachment tic
  • gnuplot:第 1 行:无效命令

    stackoverflow 上可爱的人们大家好 我正在尝试使用 gnuplot 绘制数据 我首先阅读表格并提取我想要的数据 我将此数据写入 dat 文件 截至目前 我只是尝试通过命令行绘制它 但会添加必要的代码以在 python 脚本工作后
  • 如何对每一行进行 value_counts 并创建一些列,其值是每个值的计数

    我得到一个数据框如下 df c1 c2 c3 c4 c5 c6 c7 c8 c9 c10 c11 c12 r1 0 1 1 1 1 0 0 0 0 0 0 0 r2 1 2 2 2 2 1 1 1 1 0 0 0 r3 1 0 2 0 0
  • Pandas 2 个字段中唯一值的数量

    我正在尝试查找覆盖 2 个字段的唯一值的数量 例如 一个典型的例子是姓氏和名字 我有一个数据框 当我执行以下操作时 我只获取每列的唯一字段数 在本例中为 最后一个 和 第一个 不是复合体 df Last Name First Name nu

随机推荐

  • 如何在 Android 中使用双三次插值在画布上绘制和缩放位图?

    我想在画布上绘制比实际尺寸更大的位图 我可以使用 canvas drawBitmap bitmap null destRect null 但是 如果源图像比目标矩形小得多 那么质量就会很差 因为结果会像素化 如何使用双线性或双三次重采样绘制
  • 基于其他规则应用 CSS 规则 - RTL 特定样式

    推介会 我正在尝试建立一个可用于多种文化 具有不同阅读方向的网站 为此 我只需添加dir rtl 我的根 HTML 元素上的属性 我的问题是 我有一些特定于一个方向或另一个方向的 CSS 规则 大多数情况下是边距或填充 尝试使用属性选择器失
  • 编码 - codePointCount 和 length 之间的结果不同

    我发现了一个棘手的地方 但找不到任何答案为什么会发生这种情况 主要问题是字符串有多长 它是否包含一个或两个字符 Code public class App public static void main String args throws
  • 如何在 Travis CI 中使用 python-openbabel?

    我使用 Travis CI 作为毒理学绘图项目的一部分 对于这个项目 我需要 python openbabel 作为依赖项 因此 我已将 apt get 安装程序添加到 travis yml 文件中 如下所示 已删除注释 language
  • 在matlab中计算闭合曲线(或多边形)的曲率

    考虑以下几点 x 1 34 0 92 0 68 0 25 0 06 0 34 0 49 0 72 0 79 0 94 1 35 0 35 0 54 0 68 0 84 1 20 1 23 1 32 1 34 y 0 30 0 43 0 90
  • 如何快速混合 RGBA 无符号字节颜色?

    我正在使用 c 我想使用以下代码进行 alpha 混合 define CLAMPTOBYTE color if color 255 color BYTE color gt gt 31 else color BYTE color define
  • 创建DIBection失败

    BITMAPINFO bmi memset bmi 0 sizeof BITMAPINFO bmi bmiHeader biSize sizeof BITMAPINFOHEADER bmi bmiHeader biWidth m pImg
  • NOT EXISTS 和 COUNT(*) 之间的区别

    我在两个我认为等效的语句之间得到了不同的响应 SELECT COUNT vs NOT EXISTS 在大约 50 次执行中的 49 次中 这两个语句的行为相同 但有时却不然 我的猜测是 这些语句处理锁定页面或处理更 遥远 的事情的方式之间存
  • 将到期日期格式化为 mm/yy 格式

    您好 我正在编写一个编辑文本 其中我想要 MM YY 格式的信用卡到期日期 我要实现的算法如下 如果用户输入 2 到 9 之间的任何内容 我将文本输入更改为 02 到 09 如果用户输入 1 那么我等待下一个数字并检查 int 值月份是否小
  • 执行期间检测下溢

    有没有办法在执行过程中自动检测下溢 具体来说 我认为应该有一个编译器选项来生成代码 在可能导致下溢和类似错误的数学运算之后立即检查它们 我说的是 G 编译器 C99 C 11 具有浮点控制函数 例如fetestexcept 和定义的标志 包
  • 有人可以发布一个 Swift 中 MVC 模式的好例子吗? [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 一个实现了MVC模式的简单项目 到目前为止 我对它的情况有一个简单的了解 但我想看看实际的实现 这是
  • 从 Hive 表读取数据创建的 Spark DataFrame 的分区数

    我对 Spark 数据帧分区数量有疑问 如果我有 Hive 表 员工 其中包含列 姓名 年龄 ID 位置 CREATE TABLE employee name String age String id Int PARTITIONED BY
  • 从 github wiki 页面创建 gitbook

    我在 github wiki 中有很多文档 我想整理它并用它创作一本书 当我更新维基时 这本书也应该更新 这可能吗 欢迎来到 Gitbook 这项服务可能会对您有所帮助 https docs gitbook com integrations
  • jQuery 解析 XML 在 jQuery Mobile 列表中显示 UL UL 仅返回 XML 中的最后一项

    我正在使用 jQuery Mobile 1 1 1 和 jQuery 1 7 1 JQuery mobile 可以有一个嵌套列表 单击后可以在另一个屏幕中显示下一个 ul 看这个例子 我试图通过解析 XML 数据文件来做到这一点 我列出列表
  • Flutter如何更改ListTile中选定图块的背景颜色

    我正在尝试更改 ListTile 中选定图块的背景 我搜索并找到了以下两篇文章 但是它们都不能解决我的问题 Post1 https stackoverflow com questions 49331612 change background
  • 更改 Maven Archetype 中的包属性

    我创建了一个 Maven 原型 我的META INF maven archetype metadata xml看起来像这样
  • Univocity - 解析 CSV 时检测缺失列

    我正在使用 Univocity 库来解析 CSV 它工作得很好 但我需要一种方法来检测正在解析的文件的列数是否少于所需的列数 例如 如果我期望一个 3 列文件 其中列映射到 H1 H2 H3 那么我收到一个如下所示的文件 没有标题 V1 H
  • 从启动器菜单处理应用程序关闭事件

    我想做的是知道用户何时从 Android Launcher 的菜单关闭应用程序 长按主页按钮即可打开该菜单 我想在用户关闭应用程序时执行一些操作 实际上 我希望用户每次离开应用程序时都注销 但只要他也可以关闭应用程序 我就必须处理此事件 然
  • 支持库 24.2.1 中锚定 FloatingActionButton 的错误

    我从 24 2 0 开始就遇到这个问题 但现在我使用 24 2 1 这个错误仍然存 在 它只在 我有一个锚定的 FloatingActionButton 如下所示
  • isinstance('aaa', basestring) 和 isinstance('aaa', str) 有什么区别?

    a aaaa print isinstance a basestring true print isinstance a str true 在 3 0 之前的 Python 版本中 有两种字符串 纯字符串 和 unicode 字符串 纯字符