发布网友 发布时间:2022-09-04 15:54
共1个回答
热心网友 时间:2023-12-17 06:57
抽取就是在列表,字典,集合中提取某一部分,
1.对序列(字符串、元组或列表)或映射(字典)对象的抽取操作通常就是从相应的多项集中选择一项:
2.此原型必须求值为一个支持抽取操作的对象(例如列表或字典)。 用户定义的对象可通过定义 方法来支持抽取操作。
3.对于内置对象,有两种类型的对象支持抽取操作:
如果原型为映射,表达式列表必须求值为一个以该映射的键为值的对象,抽取操作会在映射中选出该键所对应的值。(表达式列表为一个元组,除非其中只有一项。)
如果原型为序列,表达式列表必须求值为一个整数或一个切片(详情见下节)。
正式句法规则并没有在序列中设置负标号的特殊保留条款;但是,内置序列所提供的方法都可通过在索引中添加序列长度来解析负标号 (这样 x[-1] 会选出 x 中的最后一项)。 结果值必须为一个小于序列中项数的非负整数,抽取操作会选出标号为该值的项(从零开始数)。 由于对负标号和切片的支持存在于对象的方法,重载此方法的子类需要显式地添加这种支持。
字符串的项是字符。 字符不是单独的数据类型而是仅有一个字符的字符串。
4.对特定 类 或 类型 的抽取操作会创建一个 泛型别名。在此情况下,用户自定义类型可通过提供 类方法来支持抽取操作。
5.此原型必须求值为一个支持属性引用的类型的对象,多数对象都支持属性引用。 随后该对象会被要求产生以指定标识符为名称的属性。 这个产生过程可通过重载 方法来自定义。 如果这个属性不可用,则将引发 AttributeError 异常。 否则的话,所产生对象的类型和值会根据该对象来确定。 对同一属性引用的多次求值可能产生不同的对象。