Python 字符串函数 isidentifier()
我正在学习一本关于Python 3的书,遇到了一个字符串函数叫做isidentifier()。书上是这样描述的:“s.isidentifier() : 如果s不是空的并且是一个有效的标识符,就返回True。”我在Python的命令行里测试了一下,像这样:
>>> s = 'test'
>>> s.isidentifier()
True
>>> 'blah'.isidentifier()
True
我本来以为第二个语句会返回false,因为'blah'并没有被存储在一个变量里。有人能解释一下吗?谢谢。
4 个回答
5
"isidentifier" 并没有说明被测试的字符串是由哪个“变量”引用的。所以
'blah'.isidentifier()
和
s = 'blah'
s.isidentifier()
是一样的。在Python中,通常讨论的不是“变量”(因为Python其实没有变量这个概念),而是关于对象。在这个例子中,就是字符串。
5
Python 里没有“变量”的概念。更好理解的是把它看作是 对象。
当你调用 'blah'.isidentifier()
时,'blah'
这个字符串肯定是存在的(毕竟这意味着“调用字符串对象 'blah'
的 isidentifier()
方法”)。
所以如果你的理解是对的,字符串对象的 isidentifier()
方法应该总是返回 True
,因为在调用时,这个对象肯定是存在的。
其实 isidentifier()
的作用是检查这个字符串对象是否可以作为一个有效的标识符。比如你可以在 Python 中试试这两行代码:
>>> a = "$"
>>> "$".isidentifier()
即使 "$"
被赋值给了名字 a
,但 isidentifier()
的调用返回 False
,因为 $
在 Python 中不是一个有效的标识符。
12
如果s不为空并且是一个有效的标识符,就返回True。
他们的意思是,s可能是一个有效的标识符。这并不意味着它是一个正在使用的标识符。
你第一个例子展示的也是这个意思:'test'(isidentifier
实际上检查的内容)并不是一个变量的名字。我想你想表达的是
>>> 's'.isidentifier()
True