簡體   English   中英

python字符串類在源代碼中的位置

[英]Location of python string class in the source code

我正在考慮為某個字符串重載+運算符,所以我想對字符串類進行子類化,然后在新類中添加代碼。 但是我想先看看標准字符串類,但我似乎找不到它......愚蠢嗎?

任何人都可以指路嗎? 甚至是源代碼的在線文檔。

它記錄在這里 主要實現在Objects/stringobject.c 但是,子類化str可能不是您想要的。 我更喜歡這里的組合; 有一個帶有字符串字段和特殊行為的對象。

你可能是這個意思。

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'

我的實現是類似的,雖然不是那么整潔:

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'

這似乎是一個目前在 2020 年還沒有死的鏈接: https : //svn.python.org/projects/python/trunk/Objects/stringobject.c

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM