栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

Python中的方括号和点表示法之间有什么区别?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Python中的方括号和点表示法之间有什么区别?

点运算符用于访问任何对象的属性。例如,复数

>>> c = 3+4j

具有(其中包括)两个属性

real
imag

>>> c.real3.0>>> c.imag4.0

除此以外,它还有一个方法

conjugate()
,它也是一个属性:

>>> c.conjugate<built-in method conjugate of complex object at 0x7f4422d73050>>>> c.conjugate()(3-4j)

方括号表示法用于访问集合的成员,无论是字典还是其他映射,都是通过键访问的:

>>> d = {'a': 1, 'b': 2}>>> d['a']1

…或在列表或字符串等序列的情况下按索引:

>>> s = ['x', 'y', 'z']>>> s[2]'z'>>> t = 'Kapow!'>>> t[3]'o'

这些集合还分别具有以下属性:

>>> d.pop<built-in method pop of dict object at 0x7f44204068c8>>>> s.reverse<built-in method reverse of list object at 0x7f4420454d08>>>> t.lower<built-in method lower of str object at 0x7f4422ce2688>

…在上述情况下,这些属性恰好是方法。

尽管所有对象都具有某些属性,但并非所有对象都具有成员。例如,如果我们尝试使用方括号表示法访问我们的复数成员

c

>>> c[0]Traceback (most recent call last):  File "<stdin>", line 1, in <module>TypeError: 'complex' object is not subscriptable

…我们得到一个错误(这是有道理的,因为复数没有明显的方法拥有成员)。

这是可能的定义如何

[]
,并
.
在用户定义的类访问工作,采用特殊的方法
__getitem__()
__getattr__()
分别。解释如何做超出了这个问题的范围,但是您可以在Python
Tutorial中
阅读更多有关它的内容。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/516759.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号