Wenn Sie eine Funktion mit demselben Namen wie eine integrierte Funktion in Python erstellen und die ursprüngliche integrierte Funktion in dieser Funktion aufrufen möchten, das Modul "integrierte" (Handbuch). Sie können integrierte Funktionen mithilfe von library / builtins.html)) aufrufen.
Wenn Sie beispielsweise die integrierte Funktion "max" umschließen und verwenden möchten, können Sie wie folgt schreiben.
sample.py
# -*- coding: utf-8-unix -*-
import builtins
class Foo(object):
pass
def max(a, b):
u"""Eine Funktion, die eine integrierte Funktion umschließt
"""
v1, v2 = a, b
if isinstance(a, Foo):
v1 = a.value
if isinstance(b, Foo):
v2 = b.value
#Integrierte Funktionen aufrufen
return builtins.max(v1, v2)
if __name__ == '__main__':
obj = Foo()
obj.value = 10
print(max(20, obj)) # >>> 20
print(max(5, obj)) # >>> 10
print(max(5, 20)) # >>> 20
Dasselbe kann erreicht werden, indem das Modul "builtin" (** 's' wird nicht hinzugefügt! **) in der Python 2-Serie verwendet wird.
Wenn Sie sowohl die Python 2-Serie als auch die Python 3-Serie ausführen möchten, können Sie das Modul wie folgt laden.
try:
# Python 3.Für X.
import builtins
except ImportError:
# Python 2.Für X.
import __builtin__ as builtins
Recommended Posts