2024-03-29 14:07:31 发布
网友
我正在尝试为属性列表创建函数。如何为这样的对象创建属性函数?你知道吗
list([1,2,3,4,5]).even()
应返回:
[2,4]
方法应该很简单,但我在将函数与预定义对象列表关联时遇到了问题。你知道吗
不能向任何内置对象添加方法或属性。这是故意的。你知道吗
相反,您可以创建从内置列表派生的自己的列表类型:
class MyList(list): def even(self): return [x for x in self if x % 2 == 0]
演示:
>>> class MyList(list): ... def even(self): ... return [x for x in self if x % 2 == 0] ... >>> MyList([1,2,3,4,5]).even() [2, 4]
有关更多信息,请参见文档中的Classes,特别是Inheritance部分。你知道吗
在Python中不能像在Ruby中那样使用monkeypatch内置对象。您必须构建一个新对象,继承list,并将您的方法放在上面。你知道吗
list
class MyList(list): def even(self): return [num for num in self if num % 2 == 0] MyList([1,2,3,4,5]).even()
不能向任何内置对象添加方法或属性。这是故意的。你知道吗
相反,您可以创建从内置列表派生的自己的列表类型:
演示:
有关更多信息,请参见文档中的Classes,特别是Inheritance部分。你知道吗
在Python中不能像在Ruby中那样使用monkeypatch内置对象。您必须构建一个新对象,继承
list
,并将您的方法放在上面。你知道吗相关问题 更多 >
编程相关推荐