Vous pouvez utiliser la fonction dir intégrée pour répertorier les identifiants définis par le module. Les identifiants incluent des fonctions, des classes et des variables.
Lorsque vous fournissez un nom de module à dir(), il renvoie une liste de noms définis par le module. Si aucun argument n'est fourni, il renvoie une liste de noms définis dans le module actuel.
Tout d’abord, regardons l’utilisation de dir sur le module sys importé. Nous voyons qu'il contient une énorme liste de propriétés.
Ensuite, nous utilisons la fonction dir sans lui passer d'argument - par défaut, elle renvoie la liste des propriétés du module actuel. Notez que les modules importés font également partie de la liste.
Afin d'observer l'effet de dir, nous définissons une nouvelle variable a et lui attribuons une valeur, puis vérifions dir Nous observons que la même valeur que ci-dessus est ajoutée à la liste. Nous utilisons l'instruction del pour supprimer les variables/propriétés dans le module actuel, et ce changement est à nouveau reflété dans la sortie de dir.
Une petite note à propos de del - cette instruction est utilisée pour supprimer une variable/un nom après l'avoir exécuté. Dans cet exemple, del a, vous ne pourrez plus utiliser la variable a - ce sera comme si elle n'avait jamais existé.
Cette fonction est prise en charge dans toutes les versions et est toujours disponible en python3.
>>> import struct >>> dir() # show the names in the module namespace ['__builtins__', '__doc__', '__name__', 'struct'] >>> dir(struct) # show the names in the struct module ['Struct', '__builtins__', '__doc__', '__file__', '__name__', '__package__', '_clearcache', 'calcsize', 'error', 'pack', 'pack_into', 'unpack', 'unpack_from'] >>> class Shape(object): def __dir__(self): return ['area', 'perimeter', 'location'] >>> s = Shape() >>> dir(s) ['area', 'perimeter', 'location']
dir([object])
Sans arguments, renvoie la liste des noms dans le courant portée locale. Avec un argument, essayez de renvoyer une liste d'attributs valides pour cet objet.
Si l'objet a une méthode nommée __dir__(), cette méthode sera appelée et devra renvoyer la liste des attributs. permet aux objets qui implémentent une fonction personnalisée __getattr__() ou __getattribute__() de personnaliser la façon dont dir() rapporte leurs attributs.
Si l'objet ne fournit pas __dir__(), la fonction fait de son mieux pour collecter des informations à partir de l'attribut __dict__ de l'objet, s'il est défini, et à partir de son type d'objet. La liste résultante n'est pas nécessairement complète et peut être inexacte lorsque l'objet a un __getattr__() personnalisé.
Le mécanisme dir() par défaut se comporte différemment. avec différents types d'objets, car il tente de produire les informations les plus pertinentes plutôt que complètes :
Si l'objet est un objet module, la liste contient les noms des attributs du module.
Si l'objet est un objet de type ou de classe, la liste contient les noms de ses attributs, et récursivement des attributs de ses bases.
Sinon, la liste contient les noms des attributs de l'objet, les noms de ses les attributs de la classe, et récursivement des attributs des classes de base de sa classe.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!