源代码中python字符串类的位置

时间:2010-09-29 09:58:12

标签: python string class

我正在考虑为某个字符串重载+运算符,所以我在考虑对字符串类进行子类化,然后在新类中添加代码。但是我想首先看一下标准的字符串类,但我似乎无法找到它...愚蠢的呃?

任何人都可以指明方向吗?甚至是源代码的在线文档。

4 个答案:

答案 0 :(得分:9)

记录here。主要实施在Objects/stringobject.c。但是,子类化str可能不是你想要的。我倾向于喜欢这里的作文;有一个带字符串字段的对象和特殊行为。

答案 1 :(得分:1)

你可能是这个意思。

class MyCharacter( object ):
    def __init__( self, aString ):
        self.value= ord(aString[0])
    def __add__( self, other ):
        return MyCharacter( chr(self.value + other) )
    def __str__( self ):
        return chr( self.value )

就像这样。

>>> c= MyCharacter( "ABC" )
>>> str(c+2)
'C'
>>> str(c+3)
'D'
>>> c= c+1
>>> str(c)
'B'

答案 2 :(得分:0)

我的实现类似,但不是很整洁:

class MyClass:
    def __init__(self, name):
        self.name = name
    def __add__(self, other):
        for x in range(1, len(self.name)):
            a = list(self.name)[-1 * x]
            return self.name[:len(self.name)-x] + chr(ord(a) + other)


>>> CAA = MyClass('CAA')
>>> CAA + 1
'CAB'
>>> CAA + 2
'CAC'
>>> CAA + 15
'CAP'

答案 3 :(得分:0)

这似乎是一个在2020年尚未失效的链接:https://svn.python.org/projects/python/trunk/Objects/stringobject.c