Si vous créez une fonction avec le même nom qu'une fonction intégrée en Python et que vous souhaitez appeler la fonction intégrée d'origine dans cette fonction, le module builtins
(manual Vous pouvez appeler des fonctions intégrées à l'aide de library / builtins.html)).
Par exemple, si vous souhaitez encapsuler la fonction intégrée «max» et l'utiliser, vous pouvez écrire comme suit.
sample.py
# -*- coding: utf-8-unix -*-
import builtins
class Foo(object):
pass
def max(a, b):
u"""Une fonction qui encapsule une fonction intégrée
"""
v1, v2 = a, b
if isinstance(a, Foo):
v1 = a.value
if isinstance(b, Foo):
v2 = b.value
#Appel des fonctions intégrées
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
La même chose peut être obtenue en utilisant le module __builtin__
(** 's' n'est pas ajouté! **) dans la série Python 2.
Si vous souhaitez pouvoir exécuter à la fois les séries Python 2 et 3, vous pouvez charger le module comme suit.
try:
# Python 3.Pour X
import builtins
except ImportError:
# Python 2.Pour X
import __builtin__ as builtins
Recommended Posts