当前位置: 首页 > 面试题库 >

如何在Python中实现'is'关键字?

王经赋
2023-03-14
问题内容

is可以用于字符串相等的关键字。

>>> s = 'str'
>>> s is 'str'
True
>>> s is 'st'
False

我都尝试过__is__()__eq__()但是他们没有用。

>>> class MyString:
...   def __init__(self):
...     self.s = 'string'
...   def __is__(self, s):
...     return self.s == s
...
>>>
>>>
>>> m = MyString()
>>> m is 'ss'
False
>>> m is 'string' # <--- Expected to work
False
>>>
>>> class MyString:
...   def __init__(self):
...     self.s = 'string'
...   def __eq__(self, s):
...     return self.s == s
...
>>>
>>> m = MyString()
>>> m is 'ss'
False
>>> m is 'string' # <--- Expected to work, but again failed
False
>>>

问题答案:

测试字符串is仅在插入字符串时有效。除非你真的知道自己在做什么,并明确实习的字符串,你应该
永远不会 使用is的字符串。

is测试 身份 ,而非 平等 。这意味着Python会简单地比较一个对象所在的内存地址。is基本上回答了以下问题:“同一对象有两个名称吗?”
-超载毫无意义。

例如,("a" * 100) is ("a" * 100)False
。通常,Python将每个字符串写入不同的存储位置,大多数情况下是对字符串文字进行实习。



 类似资料:
  • 问题内容: 我们通过将一个表的PK(作为FK)添加到 另一表来实现一对多关系。我们通过 在第三个表中添加2个表的PK来实现多对多关系。 我们如何实现IS-A关系? 实体分别是技术人员和行政人员。我 可以在表EMPLOYEE中使用一个额外的字段(id,名称,姓氏, 角色…AdminFields…,…TechFields…) 但我想探索IS-A选项。 编辑:我按照Donnie的建议做了,但没有角色字段

  • 问题内容: 我是SQL编程的新手。 我有一个表的工作,其中字段是,,,,,,。 我想从前端实施 关键字搜索 。关键字可以位于上表的任何字段中。 这是我尝试过的查询,但包含许多重复的行: 问题答案: 对于VARCHAR字段上的单个关键字,可以使用: 对于描述,通常最好添加全文索引并进行全文搜索(仅适用于MyISAM):

  • 本节介绍 TypeScript 中的 is 关键字,它被称为类型谓词,用来判断一个变量属于某个接口或类型。如果需要封装一个类型判断函数,你应该第一时间想到它,本节列出了一些常用的类型判断函数以供参考。 1. 慕课解释 is 关键字一般用于函数返回值类型中,判断参数是否属于某一类型,并根据结果返回对应的布尔类型。 语法:prop is type 2. 举例说明 在一些兑换码场景,经常会需要将兑换码全

  • 问题内容: 在Android中,我看到这样的代码: 这在Java中合法吗?这里的View.OnClickListener到底是什么。 问题答案: 是用于接收点击事件的界面。您需要重写该方法并实现自己的代码来处理它。http://developer.android.com/reference/android/view/View.OnClickListener.html 您可以在这里查看类结构:htt

  • 本文向大家介绍Python中关键字is与==的区别简述,包括了Python中关键字is与==的区别简述的使用技巧和注意事项,需要的朋友参考一下 本文以简单示例分析了python中关键字is与 ==的区别,供大家参考一下。 首先说明一下Python学习中几个相关的小知识点。 Python中的对象包含三要素:id、type、value 其中:id用来唯一标识一个对象,type标识对象的类型,value

  • 问题内容: 我已经读过“ raise”的正式定义,但是我仍然不太明白它的作用。 简单来说,什么是“筹款”? 示例用法将有所帮助。 问题答案: 它有2个目的。 [yentup给出了第一个。 它用于引发错误。 它用于引发您自己的错误。 第二个方法是在异常处理程序中重新引发 当前 异常,以便可以在调用堆栈中进一步处理该异常。