str round español built python built-in

español - round python 3



¿Cómo restaurar un builtin que sobrescribí por accidente? (3)

Para usar la envoltura incorporada, primero asigne su dirección original en una variable como X

Una vez que haya terminado su trabajo, configúrelo en None y restablezca la dirección original a la función incorporada.

Ejemplo

  1. X= __builtin__.isinstance
  2. __builtin__.isinstance = myininstance
  3. El trabajo está hecho

    __builtin__.isinstance=None __builtin__.isinstance=X

Accidentalmente sobrescribí el set al usarlo como nombre de variable en una sesión interactiva de Python. ¿Hay alguna forma de que pueda acceder a la función de set original sin tan solo reiniciar mi sesión?

(Tengo tantas cosas en esa sesión que prefiero no tener que hacer eso, aunque por supuesto que puedo si es necesario).


Puedes usar __builtin__ :

>>> import __builtin__ >>> __builtin__.set <type ''set''>

o simplemente (no se requieren importaciones):

>>> __builtins__.set <type ''set''>

Para Python 3 :

>>> import builtins >>> builtins.set <class ''set''>

De los docs :

Detalle de la implementación de CPython : Los usuarios no deben tocar __builtins__ ; Es estrictamente un detalle de implementación. Los usuarios que deseen anular los valores en el espacio de nombres builtins deben importar el __builtin__ (no ''s'') y modificar sus atributos de manera apropiada.


Simplemente borre el nombre que está enmascarando el builtin:

>>> set = ''oops'' >>> set ''oops'' >>> del set >>> set <type ''set''>

Siempre puede seguir accediendo al original incorporado a través del espacio de nombres __builtins__ ; utilícelo si desea anular la función incorporada pero desea transferirla al original aún de la anulación:

>>> __builtins__.set <type ''set''>

__builtins__ se obtiene del módulo __builtin__ (Python 2, tenga en cuenta la falta de s ), o el módulo builtins (Python 3, con s pero sin guiones bajos).

Si tiene problemas para ubicar donde se define el nombre de máscara, verifique todos los espacios de nombres desde su actual hasta los incorporados; ¿Ver descripción breve de las reglas de alcance? para qué ámbitos pueden aplicarse a su situación actual.