是否可以向本机类添加方法?

2024-05-15 04:22:08 发布

您现在位置:Python中文网/ 问答频道 /正文

我发现,与BASIC python不同的是,python没有用于字符串的.left、.right和.mid方法。你知道吗

正如在其他地方所说的,编写函数来完成这项任务很容易,但是可以向本机类添加方法吗?你知道吗

所以

a = "Spam" 
b = a.left(3)   
print(b)

将输出:

Spa

Tags: 方法函数字符串rightbasic地方spamleft
2条回答

您可以创建自己的函数。你知道吗

right = lambda str, index: str[-index:]
left = lambda str, index: str[:index]
a = "Spam"
print(left(a,3))
print(right(a,3))
b = a[:3]

将获取字符串的3个第一个字符

b = a[:15]

不会出错(在python2上不确定)

c = a[-3:]

最后3个字符

但您仍然可以重写(继承)字符串类型

class MySuperString(str):
    def left(self, num_char):
        return self[:num_char]

a = MySuperString('plop')
b = a.left(3)

参见示例:http://www.nomadiccodemonkey.com/?p=590

编辑:

if isinstance(a, str):

不起作用了,改用这个:

if issubclass(a, str):

或者自然而然地:

if isinstance(a, MySuperString):

法国笑话:我是超级滑翔者!你知道吗

相关问题 更多 >

    热门问题