[英]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.