Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/309.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 是否可以创建对任何序列都有效的方法_Python_Monkeypatching_Duck Typing - Fatal编程技术网

Python 是否可以创建对任何序列都有效的方法

Python 是否可以创建对任何序列都有效的方法,python,monkeypatching,duck-typing,Python,Monkeypatching,Duck Typing,我只是好奇有没有可能在Python中创建可以处理任何序列的函数。例如: >>> def head(self): >>> return self[0] >>> >>> a = [1, 2, 3] >>> a.head() 1 >>> xrange(10).head() 0 不能扩展内置类型,否 您只能对它们进行子类化,但这只有在您完全控制创建和使用的情况下才有帮助。@Martin但

我只是好奇有没有可能在Python中创建可以处理任何序列的函数。例如:

>>> def head(self):
>>>     return self[0]
>>>
>>> a = [1, 2, 3]
>>> a.head()
1
>>> xrange(10).head()
0

不能扩展内置类型,否


您只能对它们进行子类化,但这只有在您完全控制创建和使用的情况下才有帮助。

@Martin但是我如何调用此函数。我尝试了上面的代码,但出现了错误
“list”对象没有属性“head”
。我可以把它叫做头(a),但我想把它叫做列表方法。@RomanPekar:我一开始误解了你的问题;你不能扩展内置类型。是的,谢谢Martin,我会等待其他答案,然后接受你的答案。如果有人没有想出好的解决方法,为什么不直接编写
head(seq)
而不是
seq.head()
?@delnan我想知道是否可以使用方法语法