使用特殊符号python 3

时间:2017-09-03 02:30:46

标签: python python-3.x list built-in

我对Python如何知道某些事情有疑问。例如,当我写

a_list = ["car", "plane"]
print(a)

Python知道a_list是一个列表。这是如何运作的?它在python的默认模块中写在哪里?

我想创建一个有点像列表的对象,但是当我想要获取特定位置的项目时,我想写一下

object_list[0]

而不是像

这样的方法
object_list.obtain_item(0)

我想创建一个像

这样的对象
$"car", "plane"$
# like yo do ["car", "plane"] by default

我无法从列表中继承,因为我正在进行的项目禁止它。

这甚至可能吗?我在这里和互联网上搜索,但我甚至无法用语言来正确搜索。

2 个答案:

答案 0 :(得分:0)

要回答您的第一个问题,那将是实施__getitem__方法的结果。

class Foo():
    def __init__(self, x, y):
        self.x = x
        self.y = y

    def __getitem__(self, ind):
        if ind == 0:
            return self.x
        return self.y

x = Foo(1, 2)
print(x[0])
1

print(x[1])
2

请注意,这是一个非常简单的实现,我还没有使用过列表,因为你说你不能使用它。

要回答您的第二个问题,这将涉及更改语言的基本语法和语法,作为语言的最终用户,您目前无权这样做。

答案 1 :(得分:0)

  

Python知道a_list是一个列表。这是如何运作的?它在哪里   写在python的默认模块中?

Python解释器识别list文字,然后创建一个列表对象。 Python列表对象是内置于解释器中的标准类型的一部分"。

  

我想创建一个类似列表的对象,但是当我   想要获得特定位置的物品,我想写一下

您可以使用object.getitem(self, key)。互联网上有很多有用的例子。

  

我想创建一个像

这样的对象      

$" car"," plane" $

     

喜欢哟[" car"," plane"]默认

如果您不想更改Python解释器,那么您可以拥有更少的本地/硬核"解析字符串并自己创建所需对象的解决方案,例如:

>>> def my_parser(s):
...     return [i.strip('"') for i in s.strip('$').split(', ')]
... 
>>> my_parser('$"car", "plane"$')
['car', 'plane']
>>>