Fonctions natives¶
L'interpréteur Python propose quelques fonctions et types natifs qui sont toujours disponibles. Ils sont listés ici par ordre alphabétique.
Fonctions natives |
|||
---|---|---|---|
- abs(x)¶
Renvoie la valeur absolue d'un nombre. L'argument peut être un nombre entier, un nombre à virgule flottante, ou tout objet définissant
__abs__()
. Si l'argument est un nombre complexe, son module est renvoyé.
- aiter(async_iterable)¶
Return an asynchronous iterator for an asynchronous iterable. Equivalent to calling
x.__aiter__()
.Note: Unlike
iter()
,aiter()
has no 2-argument variant.Nouveau dans la version 3.10.
- all(iterable)¶
Renvoie
True
si tous les éléments de iterable sont vrais (ou s'il est vide). Équivaut à :def all(iterable): for element in iterable: if not element: return False return True
- awaitable anext(async_iterator)¶
- awaitable anext(async_iterator, default)
When awaited, return the next item from the given asynchronous iterator, or default if given and the iterator is exhausted.
This is the async variant of the
next()
builtin, and behaves similarly.This calls the
__anext__()
method of async_iterator, returning an awaitable. Awaiting this returns the next value of the iterator. If default is given, it is returned if the iterator is exhausted, otherwiseStopAsyncIteration
is raised.Nouveau dans la version 3.10.
- any(iterable)¶
Renvoie
True
si au moins un élément de iterable est vrai.False
est renvoyé dans le cas où iterable est vide. Équivaut à :def any(iterable): for element in iterable: if element: return True return False
- ascii(object)¶
As
repr()
, return a string containing a printable representation of an object, but escape the non-ASCII characters in the string returned byrepr()
using\x
,\u
, or\U
escapes. This generates a string similar to that returned byrepr()
in Python 2.
- bin(x)¶
Convertit un nombre entier en binaire dans une chaîne avec le préfixe
0b
. Le résultat est une expression Python valide. Si x n'est pas unint
, il doit définir une méthode__index__()
donnant un nombre entier. Voici quelques exemples :>>> bin(3) '0b11' >>> bin(-10) '-0b1010'
If the prefix "0b" is desired or not, you can use either of the following ways.
>>> format(14, '#b'), format(14, 'b') ('0b1110', '1110') >>> f'{14:#b}', f'{14:b}' ('0b1110', '1110')
Voir aussi
format()
pour plus d'informations.
- class bool(x=False)¶
Return a Boolean value, i.e. one of
True
orFalse
. x is converted using the standard truth testing procedure. If x is false or omitted, this returnsFalse
; otherwise, it returnsTrue
. Thebool
class is a subclass ofint
(see Types numériques — int, float, complex). It cannot be subclassed further. Its only instances areFalse
andTrue
(see Valeurs booléennes).Modifié dans la version 3.7: x est désormais un argument exclusivement optionnel.
- breakpoint(*args, **kws)¶
This function drops you into the debugger at the call site. Specifically, it calls
sys.breakpointhook()
, passingargs
andkws
straight through. By default,sys.breakpointhook()
callspdb.set_trace()
expecting no arguments. In this case, it is purely a convenience function so you don't have to explicitly importpdb
or type as much code to enter the debugger. However,sys.breakpointhook()
can be set to some other function andbreakpoint()
will automatically call that, allowing you to drop into the debugger of choice. Ifsys.breakpointhook()
is not accessible, this function will raiseRuntimeError
.Lève un évènement d'audit
builtins.breakpoint
avec l'argumentbreakpointhook
.Nouveau dans la version 3.7.
- class bytearray(source=b'')
- class bytearray(source, encoding)
- class bytearray(source, encoding, errors)
Renvoie un nouveau tableau d'octets. La classe
bytearray
est une séquence muable de nombres entiers dans l'intervalle 0 <= x < 256. Il possède la plupart des méthodes des séquences variables, décrites dans Types de séquences muables, ainsi que la plupart des méthodes de la classebytes
, voir Opérations sur les bytes et bytearray.Le paramètre optionnel source peut être utilisé pour initialiser le tableau de plusieurs façons :
si c'est une chaîne, vous devez aussi donner le paramètre encoding pour l'encodage (et éventuellement errors). La fonction
bytearray()
convertit ensuite la chaîne en octets via la méthodestr.encode()
;si c'est un entier, le tableau a cette taille et est initialisé d'octets null ;
If it is an object conforming to the buffer interface, a read-only buffer of the object will be used to initialize the bytes array.
si c'est un itérable, il doit itérer sur des nombres entier dans l'intervalle
0 <= x < 256
, qui sont utilisés pour initialiser le contenu du tableau.
Sans argument, un tableau vide est créé.
Voir Séquences Binaires --- bytes, bytearray, memoryview et Objets bytearray.
- class bytes(source=b'')
- class bytes(source, encoding)
- class bytes(source, encoding, errors)
Return a new "bytes" object which is an immutable sequence of integers in the range
0 <= x < 256
.bytes
is an immutable version ofbytearray
-- it has the same non-mutating methods and the same indexing and slicing behavior.En conséquence, les arguments du constructeur sont les mêmes que pour
bytearray()
.Les objets bytes peuvent aussi être créés à partir de littéraux, voir Littéraux de chaînes de caractères et de suites d'octets.
Voir aussi Séquences Binaires --- bytes, bytearray, memoryview, Objets bytes, et Opérations sur les bytes et bytearray.
- callable(object)¶
Renvoie
True
si l'argument object semble être appelable, sinonFalse
. Lorsqu'elle renvoieTrue
, il est toujours possible qu'un appel échoue. Cependant, lorsqu'elle renvoieFalse
, il n'est jamais possible d'appeler object. Notez qu'une classe est toujours appelable (appeler une classe donne une nouvelle instance) ; une instance n'est appelable que si sa classe définit une méthode__call__()
.Nouveau dans la version 3.2: cette fonction a d'abord été supprimée avec Python 3.0 puis elle a été remise dans Python 3.2.
- chr(i)¶
Renvoie la chaîne représentant un caractère dont le code de caractère Unicode est le nombre entier i. Par exemple,
chr(97)
renvoie la chaîne de caractères'a'
, tandis quechr(8364)
renvoie'€'
. Il s'agit de l'inverse deord()
.L'intervalle valide pour cet argument est de
0
à1114111
(0x10FFFF
en base 16). Une exceptionValueError
est levée si i est en dehors de l'intervalle.
- @classmethod¶
Transforme une méthode en méthode de classe.
A class method receives the class as an implicit first argument, just like an instance method receives the instance. To declare a class method, use this idiom:
class C: @classmethod def f(cls, arg1, arg2): ...
La forme
@classmethod
est un décorateur de fonction — consultez Définition de fonctions pour plus de détails.Elle peut être appelée soit sur la classe (comme
C.f()
) ou sur une instance (commeC().f()
). L'instance est ignorée, sauf pour déterminer sa classe. Si la méthode est appelée sur une instance de classe fille, c'est la classe fille qui sera donnée en premier argument implicite.Les méthodes de classe sont différentes des méthodes statiques du C++ ou du Java. Si ce sont elles dont vous avez besoin, regardez du côté de
staticmethod()
dans cette section. Voir aussi Hiérarchie des types standards.Modifié dans la version 3.9: les méthodes de classe peuvent encapsuler d'autres descripteurs comme
property()
.Modifié dans la version 3.10: Class methods now inherit the method attributes (
__module__
,__name__
,__qualname__
,__doc__
and__annotations__
) and have a new__wrapped__
attribute.Modifié dans la version 3.11: Class methods can no longer wrap other descriptors such as
property()
.
- compile(source, filename, mode, flags=0, dont_inherit=False, optimize=- 1)¶
Compile source en un objet code ou objet AST. Les objets code peuvent être exécutés par
exec()
oueval()
. source peut être une chaîne, une chaîne d'octets, ou un objet AST. Consultez la documentation du moduleast
pour des informations sur la manipulation d'objets AST.L'argument filename doit désigner le fichier depuis lequel le code a été lu. Donnez quelque chose de reconnaissable lorsqu'il n'a pas été lu depuis un fichier (typiquement
"<string>"
).L'argument mode indique quel type de code doit être compilé :
'exec'
si source est une suite d'instructions,'eval'
pour une seule expression, ou'single'
s'il ne contient qu'une instruction interactive (dans ce dernier cas, les résultats d'expressions donnant autre chose queNone
sont affichés).The optional arguments flags and dont_inherit control which compiler options should be activated and which future features should be allowed. If neither is present (or both are zero) the code is compiled with the same flags that affect the code that is calling
compile()
. If the flags argument is given and dont_inherit is not (or is zero) then the compiler options and the future statements specified by the flags argument are used in addition to those that would be used anyway. If dont_inherit is a non-zero integer then the flags argument is it -- the flags (future features and compiler options) in the surrounding code are ignored.Compiler options and future statements are specified by bits which can be bitwise ORed together to specify multiple options. The bitfield required to specify a given future feature can be found as the
compiler_flag
attribute on the_Feature
instance in the__future__
module. Compiler flags can be found inast
module, withPyCF_
prefix.L'argument optimize indique le niveau d'optimisation du compilateur. La valeur par défaut est
-1
qui prend le niveau d'optimisation de l'interpréteur tel que reçu via l'option-O
. Les niveaux explicites sont :0
(pas d'optimisation,__debug__
estTrue
),1
(lesassert
sont supprimés,__debug__
estFalse
) ou2
(les docstrings sont également supprimées).Cette fonction lève une
SyntaxError
si la source n'est pas valide, etValueError
si la source contient des octets null.Si vous voulez transformer du code Python en sa représentation AST, voyez
ast.parse()
.Lève un évènement d'audit
compile
avec les argumentssource
etfilename
. Cet événement peut également être levé par une compilation implicite.Note
Lors de la compilation d'une chaîne de plusieurs lignes de code avec les modes
'single'
ou'eval'
, celles-ci doivent être terminées par au moins un retour à la ligne. Cela permet de faciliter la distinction entre les instructions complètes et incomplètes dans le modulecode
.Avertissement
Il est possible de faire planter l'interpréteur Python avec des chaînes suffisamment grandes ou complexes lors de la compilation d'un objet AST. Ceci est dû à limitation de la profondeur de la pile d'appels.
Modifié dans la version 3.2: Allowed use of Windows and Mac newlines. Also, input in
'exec'
mode does not have to end in a newline anymore. Added the optimize parameter.Modifié dans la version 3.5: précédemment, l'exception
TypeError
était levée quand un caractère nul était rencontré dans source.Nouveau dans la version 3.8:
ast.PyCF_ALLOW_TOP_LEVEL_AWAIT
peut maintenant être passée à flags pour permettre une gestion deawait
,async for
, etasync with
de haut niveau.
- class complex(real=0, imag=0)¶
- class complex(string)
Renvoie un nombre complexe de valeur
real + imag*1j
, ou convertit une chaîne ou un nombre en nombre complexe. Si le premier paramètre est une chaîne, il sera interprété comme un nombre complexe et la fonction doit être appelée sans second paramètre. Le second paramètre ne peut jamais être une chaîne. Chaque argument peut être de n'importe quel type numérique (même complexe). Si imag est omis, sa valeur par défaut est zéro, le constructeur effectue alors une simple conversion numérique comme le fontint
oufloat
. Si aucun argument n'est fourni, renvoie0j
.Pour un objet Python général
x
,complex(x)
délègue àx.__complex__()
. Si__complex__()
n'est pas défini, alors il délègue à__float__()
. Si__float__()
n'est pas défini, alors il délègue à__index__()
.Note
Lors de la conversion depuis une chaîne, elle ne doit pas contenir d'espaces autour des opérateurs binaires
+
ou-
. Par exemplecomplex('1+2j')
est correct, maiscomplex('1 + 2j')
lève uneValueError
.Le type complexe est décrit dans Types numériques — int, float, complex.
Modifié dans la version 3.6: les chiffres peuvent être groupés avec des tirets bas comme dans les expressions littérales.
Modifié dans la version 3.8: revient à
__index__()
si__complex__()
et__float__()
ne sont pas définies.
- delattr(object, name)¶
This is a relative of
setattr()
. The arguments are an object and a string. The string must be the name of one of the object's attributes. The function deletes the named attribute, provided the object allows it. For example,delattr(x, 'foobar')
is equivalent todel x.foobar
. name need not be a Python identifier (seesetattr()
).
- class dict(**kwarg)
- class dict(mapping, **kwarg)
- class dict(iterable, **kwarg)
Créé un nouveau dictionnaire. L'objet
dict
est la classe du dictionnaire. Voirdict
et Les types de correspondances — dict pour vous documenter sur cette classe.Pour les autres conteneurs, voir les classes natives
list
,set
, ettuple
, ainsi que le modulecollections
.
- dir()¶
- dir(object)
Sans argument, elle donne la liste des noms dans l'espace de nommage local. Avec un argument, elle essaye de donner une liste d'attributs valides pour cet objet.
Si l'objet a une méthode
__dir__()
, elle est appelée et doit donner une liste d'attributs. Cela permet aux objets implémentant__getattr__()
ou__getattribute__()
de personnaliser ce que donneradir()
.If the object does not provide
__dir__()
, the function tries its best to gather information from the object's__dict__
attribute, if defined, and from its type object. The resulting list is not necessarily complete and may be inaccurate when the object has a custom__getattr__()
.Le mécanisme par défaut de
dir()
se comporte différemment avec différents types d'objets, car elle préfère donner une information pertinente plutôt qu'exhaustive :si l'objet est un module, la liste contiendra les noms des attributs du module ;
si l'objet est un type ou une classe, la liste contiendra les noms de ses attributs et, récursivement, des attributs de ses parents ;
autrement, la liste contient les noms des attributs de l'objet, le nom des attributs de la classe, et récursivement des attributs des parents de la classe.
La liste donnée est triée par ordre alphabétique, par exemple :
>>> import struct >>> dir() # show the names in the module namespace ['__builtins__', '__name__', 'struct'] >>> dir(struct) # show the names in the struct module ['Struct', '__all__', '__builtins__', '__cached__', '__doc__', '__file__', '__initializing__', '__loader__', '__name__', '__package__', '_clearcache', 'calcsize', 'error', 'pack', 'pack_into', 'unpack', 'unpack_from'] >>> class Shape: ... def __dir__(self): ... return ['area', 'perimeter', 'location'] >>> s = Shape() >>> dir(s) ['area', 'location', 'perimeter']
Note
Étant donné que
dir()
est d'abord fournie pour son côté pratique en mode interactif, elle a tendance à fournir un ensemble de noms pertinents plutôt qu'un ensemble exhaustif et rigoureusement défini, son comportement peut aussi changer d'une version à l'autre. Par exemple, les attributs de méta-classes ne sont pas donnés lorsque l'argument est une classe.
- divmod(a, b)¶
Take two (non-complex) numbers as arguments and return a pair of numbers consisting of their quotient and remainder when using integer division. With mixed operand types, the rules for binary arithmetic operators apply. For integers, the result is the same as
(a // b, a % b)
. For floating point numbers the result is(q, a % b)
, where q is usuallymath.floor(a / b)
but may be 1 less than that. In any caseq * b + a % b
is very close to a, ifa % b
is non-zero it has the same sign as b, and0 <= abs(a % b) < abs(b)
.
- enumerate(iterable, start=0)¶
Renvoie un objet énumérant. iterable doit être une séquence, un itérateur, ou tout autre objet prenant en charge l'itération. La méthode
__next__()
de l'itérateur donné parenumerate()
renvoie un n-uplet contenant un compte (démarrant à start, 0 par défaut) et les valeurs obtenues de l'itération sur iterable.>>> seasons = ['Spring', 'Summer', 'Fall', 'Winter'] >>> list(enumerate(seasons)) [(0, 'Spring'), (1, 'Summer'), (2, 'Fall'), (3, 'Winter')] >>> list(enumerate(seasons, start=1)) [(1, 'Spring'), (2, 'Summer'), (3, 'Fall'), (4, 'Winter')]
Équivalent à :
def enumerate(iterable, start=0): n = start for elem in iterable: yield n, elem n += 1
- eval(expression, globals=None, locals=None)¶
Les arguments sont : une chaîne, et optionnellement des locales et des globales. S'il est fourni, globals doit être un dictionnaire. S'il est fourni, locals peut être n'importe quel objet mapping.
The expression argument is parsed and evaluated as a Python expression (technically speaking, a condition list) using the globals and locals dictionaries as global and local namespace. If the globals dictionary is present and does not contain a value for the key
__builtins__
, a reference to the dictionary of the built-in modulebuiltins
is inserted under that key before expression is parsed. That way you can control what builtins are available to the executed code by inserting your own__builtins__
dictionary into globals before passing it toeval()
. If the locals dictionary is omitted it defaults to the globals dictionary. If both dictionaries are omitted, the expression is executed with the globals and locals in the environment whereeval()
is called. Note, eval() does not have access to the nested scopes (non-locals) in the enclosing environment.La valeur de retour est le résultat de l'expression évaluée. Les erreurs de syntaxe sont signalées comme des exceptions. Exemple :
>>> x = 1 >>> eval('x+1') 2
This function can also be used to execute arbitrary code objects (such as those created by
compile()
). In this case, pass a code object instead of a string. If the code object has been compiled with'exec'
as the mode argument,eval()
's return value will beNone
.Hints: dynamic execution of statements is supported by the
exec()
function. Theglobals()
andlocals()
functions return the current global and local dictionary, respectively, which may be useful to pass around for use byeval()
orexec()
.If the given source is a string, then leading and trailing spaces and tabs are stripped.
Utilisez
ast.literal_eval()
si vous avez besoin d'une fonction qui peut évaluer en toute sécurité des chaînes avec des expressions ne contenant que des valeurs littérales.Lève un évènement d'audit
exec
avec l'objet de code comme argument. Les événements de compilation de code peuvent également être levés.
- exec(object, globals=None, locals=None, /, *, closure=None)¶
This function supports dynamic execution of Python code. object must be either a string or a code object. If it is a string, the string is parsed as a suite of Python statements which is then executed (unless a syntax error occurs). 1 If it is a code object, it is simply executed. In all cases, the code that's executed is expected to be valid as file input (see the section Fichier d'entrée in the Reference Manual). Be aware that the
nonlocal
,yield
, andreturn
statements may not be used outside of function definitions even within the context of code passed to theexec()
function. The return value isNone
.In all cases, if the optional parts are omitted, the code is executed in the current scope. If only globals is provided, it must be a dictionary (and not a subclass of dictionary), which will be used for both the global and the local variables. If globals and locals are given, they are used for the global and local variables, respectively. If provided, locals can be any mapping object. Remember that at the module level, globals and locals are the same dictionary. If exec gets two separate objects as globals and locals, the code will be executed as if it were embedded in a class definition.
Si le dictionnaire globals ne contient pas de valeur pour la clé
__builtins__
, une référence au dictionnaire du modulebuiltins
y est inséré. Cela vous permet de contrôler quelles fonctions natives sont exposées au code exécuté en insérant votre propre dictionnaire__builtins__
dans globals avant de le donner àexec()
.The closure argument specifies a closure--a tuple of cellvars. It's only valid when the object is a code object containing free variables. The length of the tuple must exactly match the number of free variables referenced by the code object.
Lève un évènement d'audit
exec
avec l'objet de code comme argument. Les événements de compilation de code peuvent également être levés.Note
Les fonctions natives
globals()
etlocals()
renvoient respectivement les dictionnaires globaux et locaux, qui peuvent être utiles en deuxième et troisième argument deexec()
.Note
La valeur par défaut pour locals se comporte comme la fonction
locals()
: il est déconseillé de modifier le dictionnaire locals par défaut. Donnez un dictionnaire explicitement à locals si vous désirez observer l'effet du code sur les variables locales, après queexec()
soit terminée.Modifié dans la version 3.11: Added the closure parameter.
- filter(function, iterable)¶
Construct an iterator from those elements of iterable for which function is true. iterable may be either a sequence, a container which supports iteration, or an iterator. If function is
None
, the identity function is assumed, that is, all elements of iterable that are false are removed.Notez que
filter(function, iterable)
est l'équivalent du générateur(item for item in iterable if function(item))
si function n'est pasNone
, et de(item for item in iterable if item)
si function estNone
.See
itertools.filterfalse()
for the complementary function that returns elements of iterable for which function is false.
- class float(x=0.0)¶
Renvoie un nombre a virgule flottante depuis un nombre ou une chaîne x.
If the argument is a string, it should contain a decimal number, optionally preceded by a sign, and optionally embedded in whitespace. The optional sign may be
'+'
or'-'
; a'+'
sign has no effect on the value produced. The argument may also be a string representing a NaN (not-a-number), or positive or negative infinity. More precisely, the input must conform to thefloatvalue
production rule in the following grammar, after leading and trailing whitespace characters are removed:sign ::= "+" | "-" infinity ::= "Infinity" | "inf" nan ::= "nan" digitpart ::=
digit
(["_"]digit
)* number ::= [digitpart
] "."digitpart
|digitpart
["."] exponent ::= ("e" | "E") ["+" | "-"]digitpart
floatnumber ::= number [exponent
] floatvalue ::= [sign
] (floatnumber
|infinity
|nan
)Here
digit
is a Unicode decimal digit (character in the Unicode general categoryNd
). Case is not significant, so, for example, "inf", "Inf", "INFINITY", and "iNfINity" are all acceptable spellings for positive infinity.Autrement, si l'argument est un entier ou un nombre à virgule flottante, un nombre à virgule flottante de même valeur (en accord avec la précision des nombres à virgule flottante de Python) est donné. Si l'argument est en dehors de l'intervalle d'un nombre a virgule flottante pour Python,
OverflowError
est levée.Pour un objet Python général
x
,float(x)
est délégué àx.__float__()
. Si__float__()
n'est pas défini alors il est délégué à__index__()
.Sans argument,
0.0
est renvoyé.Exemples :
>>> float('+1.23') 1.23 >>> float(' -12345\n') -12345.0 >>> float('1e-003') 0.001 >>> float('+1E6') 1000000.0 >>> float('-Infinity') -inf
Le type float est décrit dans Types numériques — int, float, complex.
Modifié dans la version 3.6: les chiffres peuvent être groupés avec des tirets bas comme dans les expressions littérales.
Modifié dans la version 3.7: x est désormais un argument exclusivement optionnel.
Modifié dans la version 3.8: revient à
__index__()
si__float__()
n'est pas définie.
- format(value, format_spec='')¶
Convert a value to a "formatted" representation, as controlled by format_spec. The interpretation of format_spec will depend on the type of the value argument; however, there is a standard formatting syntax that is used by most built-in types: Mini-langage de spécification de format.
Par défaut, format_spec est une chaîne vide. Dans ce cas, appeler cette fonction a généralement le même effet qu'appeler
str(value)
.Un appel à
format(value, format_spec)
est transformé entype(value).__format__(value, format_spec)
, qui contourne le dictionnaire de l'instance lors de la recherche de la méthode__fornat__()
. Une exceptionTypeError
est levée si la recherche de la méthode atteintobject
et que format_spec n'est pas vide, ou si format_spec ou le résultat ne sont pas des chaînes de caractères.Modifié dans la version 3.4:
object().__format__(format_spec)
lèveTypeError
si format_spec n'est pas une chaîne vide.
- class frozenset(iterable=set())
Renvoie un nouveau
frozenset
, dont les objets sont éventuellement tirés d'iterable.frozenset
est une classe native. Voirfrozenset
et Types d'ensembles — set, frozenset pour la documentation sur cette classe.Pour d'autres conteneurs, voyez les classes natives
set
,list
,tuple
, etdict
, ainsi que le modulecollections
.
- getattr(object, name)¶
- getattr(object, name, default)
Return the value of the named attribute of object. name must be a string. If the string is the name of one of the object's attributes, the result is the value of that attribute. For example,
getattr(x, 'foobar')
is equivalent tox.foobar
. If the named attribute does not exist, default is returned if provided, otherwiseAttributeError
is raised. name need not be a Python identifier (seesetattr()
).Note
Since private name mangling happens at compilation time, one must manually mangle a private attribute's (attributes with two leading underscores) name in order to retrieve it with
getattr()
.
- globals()¶
Return the dictionary implementing the current module namespace. For code within functions, this is set when the function is defined and remains the same regardless of where the function is called.
- hasattr(object, name)¶
Les arguments sont : un objet et une chaîne de caractères. Le résultat est
True
si la chaîne est le nom d'un des attributs de l'objet, sinonFalse
(l'implémentation appellegetattr(object, name)
et regarde si une exceptionAttributeError
a été levée).
- hash(object)¶
Renvoie la valeur de hachage d'un objet (s'il en a une). Les valeurs de hachage sont des entiers. Elles sont utilisées pour comparer rapidement des clés de dictionnaire lors de leur recherche. Les valeurs numériques égales ont la même valeur de hachage (même si leurs types sont différents, comme pour
1
et1.0
).Note
Pour les objets dont la méthode
__hash__()
est implémentée, notez quehash()
tronque la valeur donnée en fonction du nombre de bits de la machine hôte. Voir__hash__()
pour plus d'information.
- help()¶
- help(request)
Invoque le système d'aide natif (cette fonction est destinée à l'usage en mode interactif). Si aucun argument n'est fourni, le système d'aide démarre dans l'interpréteur. Si l'argument est une chaîne, celle-ci est recherchée comme le nom d'un module, d'une fonction, d'une classe, d'une méthode, d'un mot clé, ou d'un sujet de documentation, et une page d'aide est affichée sur la console. Si l'argument est d'un autre type, une page d'aide sur cet objet est générée.
Note that if a slash(/) appears in the parameter list of a function when invoking
help()
, it means that the parameters prior to the slash are positional-only. For more info, see the FAQ entry on positional-only parameters.Cette fonction est ajoutée à l'espace de nommage natif par le module
site
.
- hex(x)¶
Convertit un entier en chaîne hexadécimale préfixée de
0x
. Si x n'est pas unint
, il doit définir une méthode__index__()
qui renvoie un entier. Quelques exemples :>>> hex(255) '0xff' >>> hex(-42) '-0x2a'
Si vous voulez convertir un nombre entier en chaîne hexadécimale, en majuscule ou non, préfixée ou non, vous pouvez utiliser l'une des méthodes suivantes :
>>> '%#x' % 255, '%x' % 255, '%X' % 255 ('0xff', 'ff', 'FF') >>> format(255, '#x'), format(255, 'x'), format(255, 'X') ('0xff', 'ff', 'FF') >>> f'{255:#x}', f'{255:x}', f'{255:X}' ('0xff', 'ff', 'FF')
Voir aussi
format()
pour plus d'informations.Voir aussi
int()
pour convertir une chaîne hexadécimale en un entier (en affectant 16 à l'argument base).Note
Pour obtenir une représentation hexadécimale sous forme de chaîne d'un nombre à virgule flottante, utilisez la méthode
float.hex()
.
- id(object)¶
Renvoie l'« identité » d'un objet. C'est un nombre entier garanti unique et constant pour cet objet durant sa durée de vie. Deux objets dont les durées de vie ne se chevauchent pas peuvent partager le même
id()
.Particularité de l'implémentation CPython : This is the address of the object in memory.
Raises an auditing event
builtins.id
with argumentid
.
- input()¶
- input(prompt)
Si l'argument prompt est donné, il est écrit sur la sortie standard sans le retour à la ligne final. La fonction lit ensuite une ligne sur l'entrée standard et la convertit en chaîne (supprimant le retour à la ligne final) quelle renvoie. Lorsque EOF est lu,
EOFError
est levée. Exemple :>>> s = input('--> ') --> Monty Python's Flying Circus >>> s "Monty Python's Flying Circus"
Si le module
readline
est chargé,input()
l'utilisera pour fournir des fonctionnalités d'édition et d'historique élaborées.Lève un auditing event
builtins.input
avec l'argumentprompt
avant de lire l'entrée.Raises an auditing event
builtins.input/result
with the result after successfully reading input.
- class int(x=0)¶
- class int(x, base=10)
Renvoie un entier construit depuis un nombre ou une chaîne x, ou
0
si aucun argument n'est fourni. Si x définit une méthode__int__()
,int(x)
renvoiex.__int__()
. Si x définit__index__()
,int(x)
renvoiex.__index__()
Si x définit__trunc__()
,int(x)
renvoiex.__trunc__()
. Les nombres à virgule flottante sont tronqués vers zéro.If x is not a number or if base is given, then x must be a string,
bytes
, orbytearray
instance representing an integer in radix base. Optionally, the string can be preceded by+
or-
(with no space in between), have leading zeros, be surrounded by whitespace, and have single underscores interspersed between digits.A base-n integer string contains digits, each representing a value from 0 to n-1. The values 0--9 can be represented by any Unicode decimal digit. The values 10--35 can be represented by
a
toz
(orA
toZ
). The default base is 10. The allowed bases are 0 and 2--36. Base-2, -8, and -16 strings can be optionally prefixed with0b
/0B
,0o
/0O
, or0x
/0X
, as with integer literals in code. For base 0, the string is interpreted in a similar way to an integer literal in code, in that the actual base is 2, 8, 10, or 16 as determined by the prefix. Base 0 also disallows leading zeros:int('010', 0)
is not legal, whileint('010')
andint('010', 8)
are.Le type des entiers est décrit dans Types numériques — int, float, complex.
Modifié dans la version 3.4: si base n'est pas une instance d'
int
et que base a une méthodebase.__index__
, cette méthode est appelée pour obtenir un entier pour cette base. Les versions précédentes utilisaientbase.__int__
au lieu debase.__index__
.Modifié dans la version 3.6: les chiffres peuvent être groupés avec des tirets bas comme dans les expressions littérales.
Modifié dans la version 3.7: x est désormais un argument exclusivement optionnel.
Modifié dans la version 3.8: Revient à
__index__()
si__int__()
n'est pas définie.Modifié dans la version 3.11: The delegation to
__trunc__()
is deprecated.Modifié dans la version 3.11:
int
string inputs and string representations can be limited to help avoid denial of service attacks. AValueError
is raised when the limit is exceeded while converting a string x to anint
or when converting anint
into a string would exceed the limit. See the integer string conversion length limitation documentation.
- isinstance(object, classinfo)¶
Return
True
if the object argument is an instance of the classinfo argument, or of a (direct, indirect, or virtual) subclass thereof. If object is not an object of the given type, the function always returnsFalse
. If classinfo is a tuple of type objects (or recursively, other such tuples) or a Union Type of multiple types, returnTrue
if object is an instance of any of the types. If classinfo is not a type or tuple of types and such tuples, aTypeError
exception is raised.TypeError
may not be raised for an invalid type if an earlier check succeeds.Modifié dans la version 3.10: classinfo can be a Union Type.
- issubclass(class, classinfo)¶
Return
True
if class is a subclass (direct, indirect, or virtual) of classinfo. A class is considered a subclass of itself. classinfo may be a tuple of class objects (or recursively, other such tuples) or a Union Type, in which case returnTrue
if class is a subclass of any entry in classinfo. In any other case, aTypeError
exception is raised.Modifié dans la version 3.10: classinfo can be a Union Type.
- iter(object)¶
- iter(object, sentinel)
Return an iterator object. The first argument is interpreted very differently depending on the presence of the second argument. Without a second argument, object must be a collection object which supports the iterable protocol (the
__iter__()
method), or it must support the sequence protocol (the__getitem__()
method with integer arguments starting at0
). If it does not support either of those protocols,TypeError
is raised. If the second argument, sentinel, is given, then object must be a callable object. The iterator created in this case will call object with no arguments for each call to its__next__()
method; if the value returned is equal to sentinel,StopIteration
will be raised, otherwise the value will be returned.Voir aussi Les types itérateurs.
Une autre application utile de la deuxième forme de
iter()
est de construire un lecteur par blocs. Par exemple, lire des blocs de taille fixe d'une base de donnée binaire jusqu'à ce que la fin soit atteinte :from functools import partial with open('mydata.db', 'rb') as f: for block in iter(partial(f.read, 64), b''): process_block(block)
- len(s)¶
Renvoie la longueur (nombre d'éléments) d'un objet. L'argument peut être une séquence (telle qu'une chaîne de caractères ou d'octets, un n-uplet, une liste ou un intervalle) ou une collection (telle qu'un dictionnaire, un ensemble ou un ensemble figé).
Particularité de l'implémentation CPython :
len
raisesOverflowError
on lengths larger thansys.maxsize
, such asrange(2 ** 100)
.
- class list
- class list(iterable)
Contrairement aux apparences,
list
n'est pas une fonction mais un type séquentiel muable, comme décrit dans Listes et Types séquentiels — list, tuple, range.
- locals()¶
Met à jour et renvoie un dictionnaire représentant la table des symboles locaux. Les variables libres sont renvoyées par la fonction
locals()
lorsque celle-ci est appelée dans le corps d'une fonction, mais pas dans le corps d'une classe. Notez qu’au niveau d’un module,locals()
etglobals()
sont le même dictionnaire.Note
Le contenu de ce dictionnaire ne doit pas être modifié ; les changements n'affectent pas les valeurs des variables locales ou libres utilisées par l'interpréteur.
- map(function, iterable, *iterables)¶
Return an iterator that applies function to every item of iterable, yielding the results. If additional iterables arguments are passed, function must take that many arguments and is applied to the items from all iterables in parallel. With multiple iterables, the iterator stops when the shortest iterable is exhausted. For cases where the function inputs are already arranged into argument tuples, see
itertools.starmap()
.
- max(iterable, *, key=None)¶
- max(iterable, *, default, key=None)
- max(arg1, arg2, *args, key=None)
Renvoie le plus grand élément d'un itérable, ou l'argument le plus grand parmi au moins deux arguments.
Si un seul argument positionnel est fourni, il doit être itérable. Le plus grand élément de l'itérable est renvoyé. Si au moins deux arguments positionnels sont fournis, l'argument le plus grand sera renvoyé.
Elle accepte deux arguments nommés optionnels. L'argument key spécifie une fonction à un argument permettant de trier comme pour
list.sort()
. L'argument default fournit quant à lui un objet à donner si l'itérable fourni est vide. Si l'itérable est vide et que default n'est pas fourni,ValueError
est levée.Si plusieurs éléments représentent la plus grande valeur, le premier rencontré est renvoyé. C'est cohérent avec d'autres outils préservant une stabilité lors du tri, tels que
sorted(iterable, key=keyfunc, reverse=True)[0]
etheapq.nlargest(1, iterable, key=keyfunc)
.Nouveau dans la version 3.4: L'argument nommé (et seulement donné par son nom) default.
Modifié dans la version 3.8: l'argument key peut être
None
.
- class memoryview(object)
Renvoie une « vue mémoire » (memory view) créée depuis l'argument. Voir Vues de mémoires pour plus d'informations.
- min(iterable, *, key=None)¶
- min(iterable, *, default, key=None)
- min(arg1, arg2, *args, key=None)
Renvoie le plus petit élément d'un itérable ou le plus petit d'au moins deux arguments.
Si un seul argument est fourni, il doit être itérable. Le plus petit élément de l'itérable est renvoyé. Si au moins deux arguments positionnels sont fournis, le plus petit argument positionnel est renvoyé.
Elle accepte deux arguments nommés optionnels. L'argument key spécifie une fonction à un argument permettant de trier comme pour
list.sort()
. L'argument default fournit quant à lui un objet à donner si l'itérable fourni est vide. Si l'itérable est vide et que default n'est pas fourni,ValueError
est levée.Si plusieurs éléments sont minimaux, la fonction renvoie le premier rencontré. C'est cohérent avec d'autres outils préservant une stabilité lors du tri, tels que
sorted(iterable, key=keyfunc)[0]
etheapq.nsmallest(1, iterable, key=keyfunc)
.Nouveau dans la version 3.4: L'argument nommé (et seulement donné par son nom) default.
Modifié dans la version 3.8: l'argument key peut être
None
.
- next(iterator)¶
- next(iterator, default)
Retrieve the next item from the iterator by calling its
__next__()
method. If default is given, it is returned if the iterator is exhausted, otherwiseStopIteration
is raised.
- class object¶
Return a new featureless object.
object
is a base for all classes. It has methods that are common to all instances of Python classes. This function does not accept any arguments.
- oct(x)¶
Convertit un entier en sa représentation octale dans une chaîne préfixée de
0o
. Le résultat est une expression Python valide. Si x n'est pas un objetint
, il doit définir une méthode__index__()
qui donne un entier, par exemple :>>> oct(8) '0o10' >>> oct(-56) '-0o70'
If you want to convert an integer number to an octal string either with the prefix "0o" or not, you can use either of the following ways.
>>> '%#o' % 10, '%o' % 10 ('0o12', '12') >>> format(10, '#o'), format(10, 'o') ('0o12', '12') >>> f'{10:#o}', f'{10:o}' ('0o12', '12')
Voir aussi
format()
pour plus d'informations.
- open(file, mode='r', buffering=- 1, encoding=None, errors=None, newline=None, closefd=True, opener=None)¶
Ouvre file et donne un objet fichier correspondant. Si le fichier ne peut pas être ouvert, une
OSError
est levée. Voir Lecture et écriture de fichiers pour plus d'exemple d'utilisation de cette fonction.file is a path-like object giving the pathname (absolute or relative to the current working directory) of the file to be opened or an integer file descriptor of the file to be wrapped. (If a file descriptor is given, it is closed when the returned I/O object is closed unless closefd is set to
False
.)mode is an optional string that specifies the mode in which the file is opened. It defaults to
'r'
which means open for reading in text mode. Other common values are'w'
for writing (truncating the file if it already exists),'x'
for exclusive creation, and'a'
for appending (which on some Unix systems, means that all writes append to the end of the file regardless of the current seek position). In text mode, if encoding is not specified the encoding used is platform-dependent:locale.getencoding()
is called to get the current locale encoding. (For reading and writing raw bytes use binary mode and leave encoding unspecified.) The available modes are:Caractère
Signification
'r'
ouvre en lecture (par défaut)
'w'
ouvre en écriture, en effaçant le contenu du fichier
'x'
ouvre pour une création exclusive, échouant si le fichier existe déjà
'a'
open for writing, appending to the end of file if it exists
'b'
mode binaire
't'
mode texte (par défaut)
'+'
ouvre en modification (lecture et écriture)
The default mode is
'r'
(open for reading text, a synonym of'rt'
). Modes'w+'
and'w+b'
open and truncate the file. Modes'r+'
and'r+b'
open the file with no truncation.Comme mentionné dans Aperçu, Python fait la différence entre les entrées-sorties binaires et textes. Les fichiers ouverts en mode binaire (avec
'b'
dans mode) donnent leur contenu sous forme debytes
sans décodage. En mode texte (par défaut, ou lorsque't'
est dans le mode), le contenu du fichier est donné sous forme destr
, les octets ayant été décodés au préalable en utilisant un encodage déduit de l'environnement ou encoding s'il est donné.Note
Python ne dépend pas de la représentation du fichier texte du système sous-jacent. Tout le traitement est effectué par Python lui-même, et est ainsi indépendant de la plate-forme.
buffering is an optional integer used to set the buffering policy. Pass 0 to switch buffering off (only allowed in binary mode), 1 to select line buffering (only usable in text mode), and an integer > 1 to indicate the size in bytes of a fixed-size chunk buffer. Note that specifying a buffer size this way applies for binary buffered I/O, but
TextIOWrapper
(i.e., files opened withmode='r+'
) would have another buffering. To disable buffering inTextIOWrapper
, consider using thewrite_through
flag forio.TextIOWrapper.reconfigure()
. When no buffering argument is given, the default buffering policy works as follows:Les fichiers binaires sont mis dans un tampon de taille fixe, dont la taille est choisie par une heuristique essayant de déterminer la taille des blocs du système sous-jacent, ou en utilisant par défaut
io.DEFAULT_BUFFER_SIZE
. Sur de nombreux systèmes, le tampon sera de 4096 ou 8192 octets.Les fichiers texte « interactifs » (fichiers pour lesquels
io.IOBase.isatty()
renvoieTrue
) utilisent un tampon par lignes. Les autres fichiers texte sont traités comme les fichiers binaires.
encoding is the name of the encoding used to decode or encode the file. This should only be used in text mode. The default encoding is platform dependent (whatever
locale.getencoding()
returns), but any text encoding supported by Python can be used. See thecodecs
module for the list of supported encodings.errors est une chaîne facultative spécifiant comment les erreurs d'encodage et de décodage sont gérées, ce n'est pas utilisable en mode binaire. De nombreux gestionnaires d'erreurs standards sont disponibles (listés sous Gestionnaires d'erreurs), aussi, tout nom de gestionnaire d'erreur enregistré avec
codecs.register_error()
est aussi un argument valide. Les noms standards sont :'strict'
pour lever uneValueError
si une erreur d'encodage est rencontrée. La valeur par défaut,None
, a le même effet.'ignore'
ignore les erreurs. Notez qu'ignorer les erreurs d'encodage peut mener à des pertes de données.'replace'
insère un marqueur de substitution (tel que'?'
) en place des données mal formées.'surrogateescape'
will represent any incorrect bytes as low surrogate code units ranging from U+DC80 to U+DCFF. These surrogate code units will then be turned back into the same bytes when thesurrogateescape
error handler is used when writing data. This is useful for processing files in an unknown encoding.'xmlcharrefreplace'
est seulement pris en charge à l'écriture vers un fichier. Les caractères non gérés par l'encodage sont remplacés par une entité XML de la forme&#nnn;
.'backslashreplace'
remplace les données mal formées par des séquences d'échappement Python (utilisant des barres obliques inverses).'namereplace'
(aussi supporté lors de l'écriture) remplace les caractères non gérés par des séquences d'échappement\N{...}
.
newline determines how to parse newline characters from the stream. It can be
None
,''
,'\n'
,'\r'
, and'\r\n'
. It works as follows:Lors de la lecture, si newline est
None
, le mode universal newlines est activé. Les lignes lues peuvent se terminer par'\n'
,'\r'
, ou'\r\n'
, et sont remplacées par'\n'
, avant d'être renvoyées à l'appelant. S'il vaut''
, le mode universal newline est activé mais les fins de ligne ne sont pas remplacées. S'il a n'importe quelle autre valeur autorisée, les lignes sont seulement terminées par la chaîne donnée, qui est rendue telle quelle.Lors de l'écriture, si newline est
None
, chaque'\n'
est remplacé par le séparateur de lignes par défaut du systèmeos.linesep
. Si newline est''
ou'\n'
aucun remplacement n'est effectué. Si newline est un autre caractère valide, chaque'\n'
sera remplacé par la chaîne donnée.
If closefd is
False
and a file descriptor rather than a filename was given, the underlying file descriptor will be kept open when the file is closed. If a filename is given closefd must beTrue
(the default); otherwise, an error will be raised.Un opener personnalisé peut être utilisé en fournissant un appelable comme opener. Le descripteur de fichier de cet objet fichier sera alors obtenu en appelant opener avec (file, flags). opener doit renvoyer un descripteur de fichier ouvert (fournir
os.open
en tant qu'opener aura le même effet que donnerNone
).Il n'est pas possible d'hériter du fichier nouvellement créé.
L'exemple suivant utilise le paramètre dir_fd de la fonction
os.open()
pour ouvrir un fichier relatif au dossier courant :>>> import os >>> dir_fd = os.open('somedir', os.O_RDONLY) >>> def opener(path, flags): ... return os.open(path, flags, dir_fd=dir_fd) ... >>> with open('spamspam.txt', 'w', opener=opener) as f: ... print('This will be written to somedir/spamspam.txt', file=f) ... >>> os.close(dir_fd) # don't leak a file descriptor
Le type d'objet fichier renvoyé par la fonction
open()
dépend du mode. Lorsqueopen()
est utilisé pour ouvrir un fichier en mode texte (w
,r
,wt
,rt
, etc.), il renvoie une classe fille deio.TextIOBase
(spécifiquement :io.TextIOWrapper
). Lors de l'ouverture d'un fichier en mode binaire avec tampon, la classe renvoyée sera une fille deio.BufferedIOBase
. La classe exacte varie : en lecture en mode binaire elle renvoie uneio.BufferedReader
, en écriture et ajout en mode binaire c'est uneio.BufferedWriter
, et en lecture-écriture, c'est uneio.BufferedRandom
. Lorsque le tampon est désactivé, le flux brut, une classe fille deio.RawIOBase
,io.FileIO
est renvoyée.See also the file handling modules, such as
fileinput
,io
(whereopen()
is declared),os
,os.path
,tempfile
, andshutil
.Lève un évènement d'audit
open
avec les argumentsfile
,mode
etflags
.Les arguments
mode
etflags
peuvent avoir été modifiés ou déduits de l'appel original.Modifié dans la version 3.3:
ajout du paramètre opener.
ajout du mode
'x'
.IOError
était normalement levée, elle est maintenant un alias deOSError
.FileExistsError
est maintenant levée si le fichier ouvert en mode création exclusive ('x'
) existe déjà.
Modifié dans la version 3.4:
Il n'est plus possible d'hériter de file.
Modifié dans la version 3.5:
Si l'appel système est interrompu et que le gestionnaire de signal ne lève aucune exception, la fonction réessaye l'appel système au lieu de lever une
InterruptedError
(voir la PEP 475 pour la justification).ajout du gestionnaire d'erreurs
'namereplace'
.
Modifié dans la version 3.6:
prise en charge des objets implémentant
os.PathLike
.Sous Windows, ouvrir un buffer du terminal peut renvoyer une sous-classe de
io.RawIOBase
autre queio.FileIO
.
Modifié dans la version 3.11: The
'U'
mode has been removed.
- ord(c)¶
Renvoie le nombre entier représentant le code Unicode du caractère représenté par la chaîne donnée. Par exemple,
ord('a')
renvoie le nombre entier97
etord('€')
(symbole euro) renvoie8364
. Il s'agit de l'inverse dechr()
.
- pow(base, exp, mod=None)¶
Renvoie base puissance exp et, si mod est présent, donne base puissance exp modulo mod (calculé de manière plus efficiente que
pow(base, exp) % mod
). La forme à deux argumentspow(base, exp)
est équivalente à l'opérateur puissance :base**exp
.The arguments must have numeric types. With mixed operand types, the coercion rules for binary arithmetic operators apply. For
int
operands, the result has the same type as the operands (after coercion) unless the second argument is negative; in that case, all arguments are converted to float and a float result is delivered. For example,pow(10, 2)
returns100
, butpow(10, -2)
returns0.01
. For a negative base of typeint
orfloat
and a non-integral exponent, a complex result is delivered. For example,pow(-9, 0.5)
returns a value close to3j
.Pour des opérandes base et exp de type
int
, si mod est présent, mod doit également être de type entier et mod doit être non nul. Si mod est présent et que exp est négatif, base et mod doivent être premiers entre eux. Dans ce cas,pow(inv_base, -exp, mod)
est renvoyé, où inv_base est un inverse de base modulo mod.Voici un exemple de calcul d'un inverse de
38
modulo97
:>>> pow(38, -1, mod=97) 23 >>> 23 * 38 % 97 == 1 True
Modifié dans la version 3.8: Pour les opérandes
int
, la forme à trois arguments depow
permet maintenant au deuxième argument d'être négatif, permettant le calcul des inverses modulaires.Modifié dans la version 3.8: Autorise les arguments par mots-clés. Auparavant, seuls les arguments positionnels étaient autorisés.
- print(*objects, sep=' ', end='\n', file=None, flush=False)¶
Print objects to the text stream file, separated by sep and followed by end. sep, end, file, and flush, if present, must be given as keyword arguments.
Tous les arguments positionnels sont convertis en chaîne comme le fait
str()
, puis écrits sur le flux, séparés par sep et terminés par end. sep et end doivent être des chaînes, ouNone
, indiquant de prendre les valeurs par défaut. Si aucun objects n'est donnéprint()
écris seulement end.L'argument file doit être un objet avec une méthode
write(string)
; s'il n'est pas fourni, ou vautNone
,sys.stdout
sera utilisé. Puisque les arguments affichés sont convertis en chaîne,print()
ne peut pas être utilisé avec des fichiers ouverts en mode binaire. Pour ceux-ci utilisez plutôtfile.write(...)
.Whether the output is buffered is usually determined by file, but if the flush keyword argument is true, the stream is forcibly flushed.
Modifié dans la version 3.3: ajout de l'argument nommé flush.
- class property(fget=None, fset=None, fdel=None, doc=None)¶
Renvoie un attribut propriété.
fget est une fonction permettant d'obtenir la valeur d'un attribut. fset est une fonction pour en définir la valeur. fdel quant à elle permet de supprimer la valeur d'un attribut, et doc créé une docstring pour l'attribut.
Une utilisation courante : définir un attribut managé
x
:class C: def __init__(self): self._x = None def getx(self): return self._x def setx(self, value): self._x = value def delx(self): del self._x x = property(getx, setx, delx, "I'm the 'x' property.")
If c is an instance of C,
c.x
will invoke the getter,c.x = value
will invoke the setter, anddel c.x
the deleter.S'il est donné, doc sera la docstring de l'attribut. Autrement la propriété copiera celle de fget (si elle existe). Cela rend possible la création de propriétés en lecture seule en utilisant simplement
property()
comme un décorateur :class Parrot: def __init__(self): self._voltage = 100000 @property def voltage(self): """Get the current voltage.""" return self._voltage
Le décorateur
@property
transforme la méthodevoltage()
en un getter d'un attribut du même nom, et donne "Get the current voltage" comme docstring de voltage.Un objet propriété a les méthodes
getter
,setter
etdeleter
utilisables comme décorateurs créant une copie de la propriété avec les accesseurs correspondants définis par la fonction de décoration. C'est plus clair avec un exemple :class C: def __init__(self): self._x = None @property def x(self): """I'm the 'x' property.""" return self._x @x.setter def x(self, value): self._x = value @x.deleter def x(self): del self._x
Ce code est l'exact équivalent du premier exemple. Soyez attentifs à bien donner aux fonctions additionnelles le même nom que la propriété (
x
dans ce cas).L'objet propriété renvoyé à aussi les attributs
fget
,fset
etfdel
correspondants aux arguments du constructeur.Modifié dans la version 3.5: Les docstrings des objets propriété peuvent maintenant être écrits.
- class range(stop)
- class range(start, stop, step=1)
Contrairement aux apparences,
range
n'est pas une fonction mais un type de séquence immuable, comme décrit dans Ranges et Types séquentiels — list, tuple, range.
- repr(object)¶
Return a string containing a printable representation of an object. For many types, this function makes an attempt to return a string that would yield an object with the same value when passed to
eval()
; otherwise, the representation is a string enclosed in angle brackets that contains the name of the type of the object together with additional information often including the name and address of the object. A class can control what this function returns for its instances by defining a__repr__()
method. Ifsys.displayhook()
is not accessible, this function will raiseRuntimeError
.
- reversed(seq)¶
Renvoie un itérateur inversé. seq doit être un objet ayant une méthode
__reverse__()
ou prenant en charge le protocole séquence (la méthode__len__()
et la méthode__getitem__()
avec des arguments entiers commençant à zéro).
- round(number, ndigits=None)¶
Renvoie number arrondi avec une précision de ndigits chiffres après la virgule. Si ndigits est omis (ou est
None
), l'entier le plus proche est renvoyé.For the built-in types supporting
round()
, values are rounded to the closest multiple of 10 to the power minus ndigits; if two multiples are equally close, rounding is done toward the even choice (so, for example, bothround(0.5)
andround(-0.5)
are0
, andround(1.5)
is2
). Any integer value is valid for ndigits (positive, zero, or negative). The return value is an integer if ndigits is omitted orNone
. Otherwise, the return value has the same type as number.Pour tout autre objet Python
number
,round
délègue ànumber.__round__
.Note
Le comportement de
round()
avec les nombres à virgule flottante peut être surprenant : par exempleround(2.675, 2)
donne2.67
au lieu de2.68
. Ce n'est pas un bogue, mais dû au fait que la plupart des fractions de décimaux ne peuvent pas être représentés exactement en nombre a virgule flottante. Voir Arithmétique en nombres à virgule flottante : problèmes et limites pour plus d'information.
- class set
- class set(iterable)
Renvoie un nouveau
set
, dont les éléments peuvent être extraits d'iterable.set
est une classe native. Voirset
et Types d'ensembles — set, frozenset pour la documentation de cette classe.D'autres conteneurs existent, comme :
frozenset
,list
,tuple
, etdict
, ainsi que le modulecollections
.
- setattr(object, name, value)¶
This is the counterpart of
getattr()
. The arguments are an object, a string, and an arbitrary value. The string may name an existing attribute or a new attribute. The function assigns the value to the attribute, provided the object allows it. For example,setattr(x, 'foobar', 123)
is equivalent tox.foobar = 123
.name need not be a Python identifier as defined in Identifiants et mots-clés unless the object chooses to enforce that, for example in a custom
__getattribute__()
or via__slots__
. An attribute whose name is not an identifier will not be accessible using the dot notation, but is accessible throughgetattr()
etc..Note
Since private name mangling happens at compilation time, one must manually mangle a private attribute's (attributes with two leading underscores) name in order to set it with
setattr()
.
- class slice(stop)¶
- class slice(start, stop, step=1)
Return a slice object representing the set of indices specified by
range(start, stop, step)
. The start and step arguments default toNone
. Slice objects have read-only data attributesstart
,stop
, andstep
which merely return the argument values (or their default). They have no other explicit functionality; however, they are used by NumPy and other third-party packages. Slice objects are also generated when extended indexing syntax is used. For example:a[start:stop:step]
ora[start:stop, i]
. Seeitertools.islice()
for an alternate version that returns an iterator.
- sorted(iterable, /, *, key=None, reverse=False)¶
Renvoie une nouvelle liste triée depuis les éléments d'iterable.
A deux arguments optionnels qui doivent être nommés.
key spécifie une fonction d'un argument utilisé pour extraire une clé de comparaison de chaque élément de l'itérable (par exemple,
key=str.lower
). La valeur par défaut estNone
(compare les éléments directement).reverse, une valeur booléenne. Si elle est
True
, la liste d'éléments est triée comme si toutes les comparaisons étaient inversées.Utilisez
functools.cmp_to_key()
pour convertir l'ancienne notation cmp en une fonction key.La fonction native
sorted()
est garantie stable. Un tri est stable s'il garantit de ne pas changer l'ordre relatif des éléments égaux entre eux. C'est utile pour trier en plusieurs passes (par exemple par département puis par salaire).The sort algorithm uses only
<
comparisons between items. While defining an__lt__()
method will suffice for sorting, PEP 8 recommends that all six rich comparisons be implemented. This will help avoid bugs when using the same data with other ordering tools such asmax()
that rely on a different underlying method. Implementing all six comparisons also helps avoid confusion for mixed type comparisons which can call reflected the__gt__()
method.Pour des exemples de tris et un bref tutoriel, consultez Guide pour le tri.
- @staticmethod¶
Transforme une méthode en méthode statique.
Une méthode statique ne reçoit pas de premier argument implicitement. Voilà comment déclarer une méthode statique :
class C: @staticmethod def f(arg1, arg2, ...): ...
La forme
@staticmethod
est un décorateur de fonction. Consultez Définition de fonctions pour plus de détails.A static method can be called either on the class (such as
C.f()
) or on an instance (such asC().f()
). Moreover, they can be called as regular functions (such asf()
).Static methods in Python are similar to those found in Java or C++. Also, see
classmethod()
for a variant that is useful for creating alternate class constructors.Comme pour tous les décorateurs, il est possible d'appeler
staticmethod
comme une simple fonction, et faire quelque chose de son résultat. Ça peut être nécessaire dans le cas où vous voudriez une référence à la fonction depuis le corps d'une classe, et souhaiteriez éviter sa transformation en méthode d'instance. Pour ces cas, faites comme suit :def regular_function(): ... class C: method = staticmethod(regular_function)
Pour plus d'informations sur les méthodes statiques, consultez Hiérarchie des types standards.
Modifié dans la version 3.10: Static methods now inherit the method attributes (
__module__
,__name__
,__qualname__
,__doc__
and__annotations__
), have a new__wrapped__
attribute, and are now callable as regular functions.
- class str(object='')
- class str(object=b'', encoding='utf-8', errors='strict')
Renvoie une version d'object sous forme de
str
. Voirstr()
pour plus de détails.str
est la classe native des chaînes de caractères. Pour des informations générales à propos des chaînes, consultez Type Séquence de Texte — str.
- sum(iterable, /, start=0)¶
Additionne start et les éléments d'un iterable de gauche à droite et en donne le total. Les éléments de l'iterable sont normalement des nombres, et la valeur de start ne peut pas être une chaîne de caractères.
Pour certains cas, il existe de bonnes alternatives à
sum()
. La bonne méthode, et rapide, de concaténer une séquence de chaînes est d'appeler''.join(séquence)
. Pour additionner des nombres à virgule flottante avec une meilleure précision, voirmath.fsum()
. Pour concaténer une série d'itérables, utilisez plutôtitertools.chain()
.Modifié dans la version 3.8: le paramètre start peut être passé comme un argument nommé.
- class super¶
- class super(type, object_or_type=None)
Renvoie un objet mandataire (proxy object en anglais) déléguant les appels de méthode à une classe parente ou sœur de type. C'est utile pour accéder aux méthodes héritées qui ont été remplacées dans une classe.
The object_or_type determines the method resolution order to be searched. The search starts from the class right after the type.
For example, if
__mro__
of object_or_type isD -> B -> C -> A -> object
and the value of type isB
, thensuper()
searchesC -> A -> object
.The
__mro__
attribute of the object_or_type lists the method resolution search order used by bothgetattr()
andsuper()
. The attribute is dynamic and can change whenever the inheritance hierarchy is updated.Si le second argument est omis, l'objet super obtenu n'est pas lié. Si le second argument est un objet,
isinstance(obj, type)
doit être vrai. Si le second argument est un type,issubclass(type2, type)
doit être vrai (c'est utile pour les méthodes de classe).Il existe deux autres cas d'usage typiques pour super. Dans une hiérarchie de classes à héritage simple, super peut être utilisé pour obtenir la classe parente sans avoir à la nommer explicitement, rendant le code plus maintenable. Cet usage se rapproche de l'usage de super dans d'autres langages de programmation.
The second use case is to support cooperative multiple inheritance in a dynamic execution environment. This use case is unique to Python and is not found in statically compiled languages or languages that only support single inheritance. This makes it possible to implement "diamond diagrams" where multiple base classes implement the same method. Good design dictates that such implementations have the same calling signature in every case (because the order of calls is determined at runtime, because that order adapts to changes in the class hierarchy, and because that order can include sibling classes that are unknown prior to runtime).
Dans tous les cas, un appel typique à une classe parente ressemble à :
class C(B): def method(self, arg): super().method(arg) # This does the same thing as: # super(C, self).method(arg)
En plus de la recherche de méthodes,
super()
fonctionne également pour la recherche d'attributs. Un cas d'utilisation possible est l'appel d'un descripteur d'une classe parente ou sœur.Notez que
super()
fait partie de l'implémentation du processus de liaison de recherche d'attributs pointés explicitement commesuper().__getitem__(name)
. Il le fait en implémentant sa propre méthode__getattribute__()
pour rechercher les classes dans un ordre prévisible supportant l'héritage multiple coopératif. En conséquence,super()
n'est pas défini pour les recherches implicites via des instructions ou des opérateurs tels quesuper()[name]
.Notez aussi que, en dehors de sa forme sans arguments,
super()
peut être utilisée en dehors des méthodes. La forme à deux arguments est précise et donne tous les arguments exactement, donnant les références appropriées. La forme sans arguments fonctionne seulement à l'intérieur d'une définition de classe, puisque c'est le compilateur qui donne les détails nécessaires à propos de la classe en cours de définition, ainsi qu'accéder à l'instance courante pour les méthodes ordinaires.Pour des suggestions pratiques sur la conception de classes coopératives utilisant
super()
, consultez guide to using super().
- class tuple
- class tuple(iterable)
Plutôt qu'être une fonction,
tuple
est en fait un type de séquence immuable, comme documenté dans N-uplets et Types séquentiels — list, tuple, range.
- class type(object)¶
- class type(name, bases, dict, **kwds)
Avec un argument, renvoie le type d'object. La valeur renvoyée est un objet type et généralement la même que la valeur de l'attribut
object.__class__
.La fonction native
isinstance()
est recommandée pour tester le type d'un objet, car elle prend en compte l'héritage.With three arguments, return a new type object. This is essentially a dynamic form of the
class
statement. The name string is the class name and becomes the__name__
attribute. The bases tuple contains the base classes and becomes the__bases__
attribute; if empty,object
, the ultimate base of all classes, is added. The dict dictionary contains attribute and method definitions for the class body; it may be copied or wrapped before becoming the__dict__
attribute. The following two statements create identicaltype
objects:>>> class X: ... a = 1 ... >>> X = type('X', (), dict(a=1))
Voir aussi Objets type.
Keyword arguments provided to the three argument form are passed to the appropriate metaclass machinery (usually
__init_subclass__()
) in the same way that keywords in a class definition (besides metaclass) would.See also Personnalisation de la création de classes.
Modifié dans la version 3.6: Les sous-classes de
type
qui ne redéfinissent pastype.__new__
ne doivent plus utiliser la forme à un argument pour récupérer le type d'un objet.
- vars()¶
- vars(object)
Renvoie l'attribut
__dict__
d'un module, d'une classe, d'une instance ou de n'importe quel objet avec un attribut__dict__
.Certains objets, comme les modules et les instances, ont un attribut
__dict__
modifiable ; cependant, d'autres objets peuvent avoir des restrictions en écriture sur leurs attributs__dict__
(par exemple, les classes utilisent untypes.MappingProxyType
pour éviter les modifications directes du dictionnaire).Sans argument,
vars()
se comporte commelocals()
. Notez que le dictionnaire des variables locales n'est utile qu'en lecture, car ses écritures sont ignorées.A
TypeError
exception is raised if an object is specified but it doesn't have a__dict__
attribute (for example, if its class defines the__slots__
attribute).
- zip(*iterables, strict=False)¶
Iterate over several iterables in parallel, producing tuples with an item from each one.
Example:
>>> for item in zip([1, 2, 3], ['sugar', 'spice', 'everything nice']): ... print(item) ... (1, 'sugar') (2, 'spice') (3, 'everything nice')
More formally:
zip()
returns an iterator of tuples, where the i-th tuple contains the i-th element from each of the argument iterables.Another way to think of
zip()
is that it turns rows into columns, and columns into rows. This is similar to transposing a matrix.zip()
is lazy: The elements won't be processed until the iterable is iterated on, e.g. by afor
loop or by wrapping in alist
.One thing to consider is that the iterables passed to
zip()
could have different lengths; sometimes by design, and sometimes because of a bug in the code that prepared these iterables. Python offers three different approaches to dealing with this issue:By default,
zip()
stops when the shortest iterable is exhausted. It will ignore the remaining items in the longer iterables, cutting off the result to the length of the shortest iterable:>>> list(zip(range(3), ['fee', 'fi', 'fo', 'fum'])) [(0, 'fee'), (1, 'fi'), (2, 'fo')]
zip()
is often used in cases where the iterables are assumed to be of equal length. In such cases, it's recommended to use thestrict=True
option. Its output is the same as regularzip()
:>>> list(zip(('a', 'b', 'c'), (1, 2, 3), strict=True)) [('a', 1), ('b', 2), ('c', 3)]
Unlike the default behavior, it raises a
ValueError
if one iterable is exhausted before the others:>>> for item in zip(range(3), ['fee', 'fi', 'fo', 'fum'], strict=True): ... print(item) ... (0, 'fee') (1, 'fi') (2, 'fo') Traceback (most recent call last): ... ValueError: zip() argument 2 is longer than argument 1
Without the
strict=True
argument, any bug that results in iterables of different lengths will be silenced, possibly manifesting as a hard-to-find bug in another part of the program.Shorter iterables can be padded with a constant value to make all the iterables have the same length. This is done by
itertools.zip_longest()
.
Edge cases: With a single iterable argument,
zip()
returns an iterator of 1-tuples. With no arguments, it returns an empty iterator.Tips and tricks:
The left-to-right evaluation order of the iterables is guaranteed. This makes possible an idiom for clustering a data series into n-length groups using
zip(*[iter(s)]*n, strict=True)
. This repeats the same iteratorn
times so that each output tuple has the result ofn
calls to the iterator. This has the effect of dividing the input into n-length chunks.zip()
peut être utilisée conjointement avec l'opérateur*
pour dézipper une liste :>>> x = [1, 2, 3] >>> y = [4, 5, 6] >>> list(zip(x, y)) [(1, 4), (2, 5), (3, 6)] >>> x2, y2 = zip(*zip(x, y)) >>> x == list(x2) and y == list(y2) True
Modifié dans la version 3.10: Added the
strict
argument.
- __import__(name, globals=None, locals=None, fromlist=(), level=0)¶
Note
C'est une fonction avancée qui n'est pas fréquemment nécessaire, contrairement à
importlib.import_module()
.Cette fonction est invoquée via l'instruction
import
. Elle peut être remplacée (en important le modulebuiltins
et en y remplaçantbuiltins.__import__
) afin de changer la sémantique de l'instructionimport
, mais c'est extrêmement déconseillé, car il est plus simple d'utiliser des points d'entrée pour les importations (import hooks, voir la PEP 302) pour le même résultat sans perturber du code s'attendant à trouver l'implémentation par défaut. L'usage direct de__import__()
est aussi déconseillé en faveur deimportlib.import_module()
.The function imports the module name, potentially using the given globals and locals to determine how to interpret the name in a package context. The fromlist gives the names of objects or submodules that should be imported from the module given by name. The standard implementation does not use its locals argument at all and uses its globals only to determine the package context of the
import
statement.level permet de choisir entre importation absolue ou relative.
0
(par défaut) force à effectuer uniquement des importations absolues. Une valeur positive indique le nombre de dossiers parents relativement au dossier du module appelant__import__()
(voir la PEP 328).Lorsque la variable name est de la forme
package.module
, normalement, le paquet de plus haut niveau (le nom jusqu'au premier point) est renvoyé, et pas le module nommé par name. Cependant, lorsqu'un argument fromlist est fourni, le module nommé par name est renvoyé.Par exemple, l'instruction
import spam
renvoie un code intermédiaire (bytecode en anglais) ressemblant au code suivant :spam = __import__('spam', globals(), locals(), [], 0)
L'instruction
import spam.ham
appelle :spam = __import__('spam.ham', globals(), locals(), [], 0)
Notez comment
__import__()
renvoie ici le module de plus haut niveau parce que c'est l'objet lié à un nom par l'instructionimport
.En revanche, l'instruction
from spam.ham import eggs, sausage as saus
donne :_temp = __import__('spam.ham', globals(), locals(), ['eggs', 'sausage'], 0) eggs = _temp.eggs saus = _temp.sausage
Ici le module
spam.ham
est renvoyé par__import__()
. De cet objet, les noms à importer sont récupérés et assignés à leurs noms respectifs.Si vous voulez simplement importer un module (potentiellement dans un paquet) par son nom, utilisez
importlib.import_module()
.Modifié dans la version 3.3: les valeurs négatives pour level ne sont plus prises en charge (et sa valeur par défaut est 0).
Modifié dans la version 3.9: Quand les options
-E
ou-I
sont précisées dans la ligne de commande, la variable d'environnementPYTHONCASEOK
est ignorée.
Notes
- 1
Notez que l'analyseur n'accepte que des fin de lignes de style Unix. Si vous lisez le code depuis un fichier, assurez-vous d'utiliser la conversion de retours à la ligne pour convertir les fin de lignes Windows et Mac.