我正在尝试“猴子补丁”列表的实例。请注意,它不是我的列表。我无法控制它的创作。据我所知,这在2.7中是不可能的。我对吗?是否有可能在3.x?
答案 0 :(得分:6)
不,您无法在list
对象上添加或删除属性,而不是在Python 2中,而不是在Python 3中。
最好你可以将这样的对象包装在另一个实例中,一个实现与列表相同的属性和方法,但将访问权限传递给包装的列表对象。
可以使用UserList.UserList()
class:
try:
# Python 2
from UserList import UserList
except ImportError:
# Python 3
from collections import UserList
class ListWrapper(UserList):
def extra_method(self):
return """Hi! I'm an extra method on this "list" (wink, wink)"""
演示:
>>> some_list = ['foo', 'bar', 'baz']
>>> wrapped_list = ListWrapper(some_list)
>>> len(wrapped_list)
3
>>> wrapped_list[1]
'bar'
>>> wrapped_list.extra_method()
'Hi! I\'m an extra method on this "list" (wink, wink)'
答案 1 :(得分:2)
这是一种将单个方法添加到"dates.startDate":{
$lte: moment().valueOf()
},
"dates.endDate":{
$gte: moment().valueOf()
}
的子类的单个实例的轻量级方法
list