在python中扩展内置类 [英] Extending builtin classes in python

查看:28
本文介绍了在python中扩展内置类的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

如何在 python 中扩展内置类?我想在 str 类中添加一个方法.
我已经做了一些搜索,但我发现的都是旧帖子,我希望有人知道一些新的东西.

解决方案

只需将类型子类化

<预><代码>>>>X(str) 类:... def my_method(self):...返回 int(self)...>>>s = X("你好妈妈")>>>慢点()'你好妈妈'>>>s.my_method()回溯(最近一次调用最后一次):文件<stdin>",第 1 行,在 <module> 中文件<stdin>",第 3 行,在 my_method 中ValueError: 基数为 10 的 int() 的文字无效:'嗨妈妈'>>>z = X("271828")>>>z.lower()'271828'>>>z.my_method()271828

How can I extend a builtin class in python? I would like to add a method to the str class.
I've done some searching but all I'm finding is older posts, I'm hoping someone knows of something newer.

解决方案

Just subclass the type

>>> class X(str):
...     def my_method(self):
...         return int(self)
...
>>> s = X("Hi Mom")
>>> s.lower()
'hi mom'
>>> s.my_method()
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "<stdin>", line 3, in my_method
ValueError: invalid literal for int() with base 10: 'Hi Mom'

>>> z = X("271828")
>>> z.lower()
'271828'
>>> z.my_method()
271828

这篇关于在python中扩展内置类的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆