【发布时间】:2013-09-21 18:10:14
【问题描述】:
在 Python 中,是否可以向内置类(例如 Tuple)添加新方法。我想添加 2 个新方法: first() 返回元组的第一个元素, second() 返回一个没有第一个元素的新元组。
例如:
x = (1, 2, 3)
x.first() # 1
x.second() # (2, 3)
谢谢
【问题讨论】:
-
不,您必须创建自己的课程。 (你可以继承元组。)
-
为什么不直接切片元组呢?第一个是
t[0],“第二个”是t[1:]。 -
所以 python 类是封闭的,不能像 Ruby 或 C# 那样扩展。那是对的吗?我是python的新手,所以只想知道什么可以做,什么不能做。能够在不改变其默认行为的情况下扩展现有类可能非常有用。一个例子是 LINQ 主要是通过扩展方法实现的。
-
@user1797036 不可以。用 C 实现的类(大多数内置类都是如此)不能进行猴子补丁。但是,它们可以通过继承来扩展。