扩展 str 类以获取附加参数
我想创建一个新类,它是一种特殊类型的字符串。我希望它继承 str 类的所有方法,但我希望能够向它传递一个它可以使用的附加参数。像这样的事情:
class URIString(str, ns = namespace): # ns defaults to global variable namespace
def getLocalName(self):
return self[(self.find(ns)+len(ns)):] # self should still act like a string
# return everything in the string after the namespace
我知道语法不正确。但希望它传达了我想要表达的想法。
I want to create a new class that is a special type of string. I want it to inherit all the methods of the str class, but I want to be able to pass it an additional parameter that it can use. Something like this:
class URIString(str, ns = namespace): # ns defaults to global variable namespace
def getLocalName(self):
return self[(self.find(ns)+len(ns)):] # self should still act like a string
# return everything in the string after the namespace
I know the syntax isn't right. But hopefully it conveys the idea that I'm trying to get at.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
你可能想做这样的事情:
我使用了 @property 装饰器将 getLocalName() 转换为属性 local_name - 在 python 中, getter/setter 被认为是不好的做法。
请注意,在 Python 3.x 之前,您需要使用 super(URIString, cls).__new__(cls, value)。
You would want to do something like this:
I have used the
@property
decorator to turngetLocalName()
into the attributelocal_name
- in python, getters/setters are considered bad practice.Note that pre-Python 3.x, you need to use
super(URIString, cls).__new__(cls, value)
.