Les exemples de cet article décrivent les objets Python et la technologie orientée objet. Partagez-le avec tout le monde pour votre référence, comme suit :
1 Regardons d'abord un exemple. Ce chapitre expliquera cet exemple de programme :
Fichier : fileinfo.py :
"""Framework for getting filetype-specific metadata. Instantiate appropriate class with filename. Returned object acts like a dictionary, with key-value pairs for each piece of metadata. import fileinfo info = fileinfo.MP3FileInfo("/music/ap/mahadeva.mp3") print "\n".join(["%s=%s" % (k, v) for k, v in info.items()]) Or use listDirectory function to get info on all files in a directory. for info in fileinfo.listDirectory("/music/ap/", [".mp3"]): ... Framework can be extended by adding classes for particular file types, e.g. HTMLFileInfo, MPGFileInfo, DOCFileInfo. Each class is completely responsible for parsing its files appropriately; see MP3FileInfo for example. """ import os import sys from UserDict import UserDict def stripnulls(data): "strip whitespace and nulls" return data.replace("{post.content}", "").strip() class FileInfo(UserDict): "store file metadata" def __init__(self, filename=None): UserDict.__init__(self) self["name"] = filename class MP3FileInfo(FileInfo): "store ID3v1.0 MP3 tags" tagDataMap = {"title" : ( 3, 33, stripnulls), "artist" : ( 33, 63, stripnulls), "album" : ( 63, 93, stripnulls), "year" : ( 93, 97, stripnulls), "comment" : ( 97, 126, stripnulls), "genre" : (127, 128, ord)} def __parse(self, filename): "parse ID3v1.0 tags from MP3 file" self.clear() try: fsock = open(filename, "rb", 0) try: fsock.seek(-128, 2) tagdata = fsock.read(128) finally: fsock.close() if tagdata[:3] == "TAG": for tag, (start, end, parseFunc) in self.tagDataMap.items(): self[tag] = parseFunc(tagdata[start:end]) except IOError: pass def __setitem__(self, key, item): if key == "name" and item: self.__parse(item) FileInfo.__setitem__(self, key, item) def listDirectory(directory, fileExtList): "get list of file info objects for files of particular extensions" fileList = [os.path.normcase(f) for f in os.listdir(directory)] fileList = [os.path.join(directory, f) for f in fileList if os.path.splitext(f)[1] in fileExtList] def getFileInfoClass(filename, module=sys.modules[FileInfo.__module__]): "get file info class from filename extension" subclass = "%sFileInfo" % os.path.splitext(filename)[1].upper()[1:] return hasattr(module, subclass) and getattr(module, subclass) or FileInfo return [getFileInfoClass(f)(f) for f in fileList] if __name__ == "__main__": for info in listDirectory("/music/_singles/", [".mp3"]): print "\n".join(["%s=%s" % (k, v) for k, v in info.items()]) print2 Utiliser from module import pour importer le module Le module d'importation que nous avons appris auparavant utilise la syntaxe suivante : importer le nom du moduleDe cette façon, lorsque vous devez utiliser des éléments dans ce module, vous devez utiliser le nom du module et utiliser directement le nom qu'il contient est une erreur. Donc, imprimez :
.
>>> import types >>> types.FunctionType <type> >>> FunctionType</type>Regardez maintenant une autre syntaxe pour importer des noms dans des modules : from module name import name ou utilisez
Traceback (most recent call last): File "<interactive>", line 1, in <module> NameError: name 'FunctionType' is not defined</module></interactive>
à partir de l'importation du nom du module *
Par exemple :
De cette façon, le nom importé peut être utilisé directement sans le nom du module. Par exemple :>>> from types import FunctionType3 Définition de classeLa syntaxe pour définir une classe :class nom de la classe :
>>> FunctionType <type></type>pass ou nom de la classe de classe (liste des classes de base) :
pass
Le pass est un mot-clé Python. Cela signifie. ne rien faire.
class A(B) : " this is class A. "Cependant, pour être précis, cela ne peut être considéré que comme une méthode qui est automatiquement exécuté après la création d'un objet de ce type. Lorsque cette fonction est exécutée, l'objet a été initialisé Par exemple :
__init__
<.>Un constructeur est défini ici pour la classe A, et le constructeur de la classe de base B y est appelé
Il convient de noter qu'en Python, le constructeur de la classe dérivée ne sera pas. "automatiquement" appelé. Si nécessaire, il doit être écrit explicitement
Toutes les méthodes de classe sont utilisées pour recevoir ce pointeur.
class A(B) : "this is class A. " def __init__ (self): B.__init__(self)Do. ne transmet pas ce paramètre lors de l'appel. Il sera ajouté automatiquement.Mais dans le constructeur comme ci-dessus, appelez le __init( de la classe de base).4. Instanciation d'une classe L'instanciation d'une classe est similaire à d'autres langages. Il suffit d'appeler son nom de classe en tant que fonction . Il n'y a pas de nouveauté dans d'autres langages. list)Le premier paramètre self de __init__ n'a pas besoin d'être donné dans la liste des paramètres.Par exemple : a = A() Nous pouvons visualiser la documentation d'une classe ou d'une instance de classe. Ceci via leur attribut __doc__ Par exemple :
Nous pouvons également. obtenir sa classe via son instance. C'est via son attribut __class__ Par exemple :
Après avoir créé une instance de la classe. Vous devez vous soucier du recyclage. Le garbage collection détruira automatiquement les objets inutilisés en fonction du comptage des références.>>> A.__doc__ 'this is class A. ' >>> a.__doc__ 'this is class A. '
En Python, il n'y a pas d'instruction de déclaration spéciale lors de l'affectation. :
>>> a.__class__ <class></class>
À ce moment, les données sont automatiquement utilisées car elles sont membres de la classe A.
est dans la définition de la classe. Pour utiliser des variables membres ou des méthodes membres dans la classe, elles doivent être qualifiées avec le nom self
Par conséquent, les données sont généralement générées Member. Attribuez simplement une valeur au nom self dans n'importe quelle méthode. .
Cependant, c'est une bonne pratique d'attribuer une valeur initiale à tous les attributs de données dans la méthode __init__
class A : def __init__(self) : self.data = []Python ne prend pas en charge la surcharge de fonctions Parlons-en. indentation du code ici. En fait, si un bloc de code n'a qu'une seule phrase, il peut être placé directement après les deux points. Il n'est pas nécessaire d'envelopper le format d'indentation 6 Méthodes de classe spéciales
sont différentes des méthodes ordinaires. Après avoir défini des méthodes spéciales dans une classe, vous n'êtes pas obligé de les appeler explicitement. Au lieu de cela, Python les appellera automatiquement à certains moments.
Obtenir et définir des éléments de données.
Cela nécessite de définir les méthodes __getitem__ et __setitem__ dans la classe.
Par exemple :
Le a[1] ici appelle la méthode __getitem__. Elle est égale à a.__getitem__(1)Similaire à la méthode __getitem__, il y a __setitem__Par exemple, dans la classe A ci-dessus définit :>>> class A: ... def __init__(self): ... self.li = range(5) ... def __getitem__(self, i): ... return self.li[-i] ... >>> a = A() >>> print a[1]Appelez ensuite cette méthode comme suit : a[1] = 0 ce qui équivaut à appeler un .__setitem__(1, 0)7 Méthodes de classe spéciales avancées sont similaires à __getitem__ __setitem__ Il existe également quelques fonctions spéciales spéciales :
def __setitem__(self, key, item): self.li[key] = item
.
Cette méthode spéciale est utilisée pour représenter la représentation sous forme de chaîne de cet objet. Elle est appelée via la fonction intégrée repr() Par exemple, Cette repr() peut être appliquée à n'importe quel objet.En fait, dans la fenêtre interactive, entrez simplement le nom de la variable et appuyez sur Entrée.def __repr__(self): return repr(self.li)Il est utilisé pour comparer si deux instances self et x sont égales. Lorsqu'on l'appelle, c'est comme suit :
repr(a)
Cela compare si a et b sont égaux. Identique à appeler a.cmp(b)
def __cmp__(self, x): if isinstance(x, A): return cmp(self.li, x.li)
Il est utilisé pour renvoyer la longueur de l'objet . Il sera appelé lors de l'utilisation de len (object
Utilisez-le pour spécifier une valeur de longueur logique souhaitéea = A() b = A() a == b
.
In Cette fonction sera appelée lorsque l'objet del [key] est appelé.8 Attributs de classedef __len__(self): return len(self.li)
Les attributs de classe font référence à des éléments comme les membres statiques en c.
En Python, il peut également y avoir des attributs de classe. Par exemple :
def __delitem__(self, key): del self.li[key]peut être référencé (modifié) via des classes. (modifié) via des instances :
ou
class A : l = [1, 2, 3]
9 Fonction privée
Il existe également la notion de "privé" en Python :
Les fonctions privées ne peuvent pas être appelées depuis l'extérieur de leurs modules.
Les méthodes de classe privée ne peuvent pas être appelées depuis l'extérieur de leurs classes.
Attributs privés Ils ne sont pas accessibles depuis l'extérieur de leurs classes.
Il n'y a que deux types de privé et de public en Python. Il n'y a pas de concept de protection. La distinction entre public et privé dépend des fonctions, des méthodes de classe et de l'attribut de classe. noms.
Les noms des éléments privés commencent par __. (Mais les méthodes spéciales mentionnées précédemment (telles que __getitem__) ne sont pas privées).
Pour plus d'articles liés aux objets python et aux objets- orienté technologie, faites attention au site PHP chinois !

Est-ce suffisant pour apprendre Python pendant deux heures par jour? Cela dépend de vos objectifs et de vos méthodes d'apprentissage. 1) Élaborer un plan d'apprentissage clair, 2) Sélectionnez les ressources et méthodes d'apprentissage appropriées, 3) la pratique et l'examen et la consolidation de la pratique pratique et de l'examen et de la consolidation, et vous pouvez progressivement maîtriser les connaissances de base et les fonctions avancées de Python au cours de cette période.

Les applications clés de Python dans le développement Web incluent l'utilisation des cadres Django et Flask, le développement de l'API, l'analyse et la visualisation des données, l'apprentissage automatique et l'IA et l'optimisation des performances. 1. Framework Django et Flask: Django convient au développement rapide d'applications complexes, et Flask convient aux projets petits ou hautement personnalisés. 2. Développement de l'API: Utilisez Flask ou DjangorestFramework pour construire RestulAPI. 3. Analyse et visualisation des données: utilisez Python pour traiter les données et les afficher via l'interface Web. 4. Apprentissage automatique et AI: Python est utilisé pour créer des applications Web intelligentes. 5. Optimisation des performances: optimisée par la programmation, la mise en cache et le code asynchrones

Python est meilleur que C dans l'efficacité du développement, mais C est plus élevé dans les performances d'exécution. 1. La syntaxe concise de Python et les bibliothèques riches améliorent l'efficacité du développement. Les caractéristiques de type compilation et le contrôle du matériel de CC améliorent les performances d'exécution. Lorsque vous faites un choix, vous devez peser la vitesse de développement et l'efficacité de l'exécution en fonction des besoins du projet.

Les applications du monde réel de Python incluent l'analyse des données, le développement Web, l'intelligence artificielle et l'automatisation. 1) Dans l'analyse des données, Python utilise des pandas et du matplotlib pour traiter et visualiser les données. 2) Dans le développement Web, les cadres Django et Flask simplifient la création d'applications Web. 3) Dans le domaine de l'intelligence artificielle, Tensorflow et Pytorch sont utilisés pour construire et former des modèles. 4) En termes d'automatisation, les scripts Python peuvent être utilisés pour des tâches telles que la copie de fichiers.

Python est largement utilisé dans les domaines de la science des données, du développement Web et des scripts d'automatisation. 1) Dans la science des données, Python simplifie le traitement et l'analyse des données à travers des bibliothèques telles que Numpy et Pandas. 2) Dans le développement Web, les cadres Django et Flask permettent aux développeurs de créer rapidement des applications. 3) Dans les scripts automatisés, la simplicité de Python et la bibliothèque standard le rendent idéal.

La flexibilité de Python se reflète dans les systèmes de prise en charge et de type dynamique multi-paradigmes, tandis que la facilité d'utilisation provient d'une syntaxe simple et d'une bibliothèque standard riche. 1. Flexibilité: prend en charge la programmation orientée objet, fonctionnelle et procédurale, et les systèmes de type dynamique améliorent l'efficacité de développement. 2. Facilité d'utilisation: La grammaire est proche du langage naturel, la bibliothèque standard couvre un large éventail de fonctions et simplifie le processus de développement.

Python est très favorisé pour sa simplicité et son pouvoir, adaptés à tous les besoins des débutants aux développeurs avancés. Sa polyvalence se reflète dans: 1) Facile à apprendre et à utiliser, syntaxe simple; 2) Bibliothèques et cadres riches, tels que Numpy, Pandas, etc.; 3) Support multiplateforme, qui peut être exécuté sur une variété de systèmes d'exploitation; 4) Convient aux tâches de script et d'automatisation pour améliorer l'efficacité du travail.

Oui, apprenez Python en deux heures par jour. 1. Élaborer un plan d'étude raisonnable, 2. Sélectionnez les bonnes ressources d'apprentissage, 3. Consolider les connaissances apprises par la pratique. Ces étapes peuvent vous aider à maîtriser Python en peu de temps.


Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

AI Hentai Generator
Générez AI Hentai gratuitement.

Article chaud

Outils chauds

Version Mac de WebStorm
Outils de développement JavaScript utiles

Télécharger la version Mac de l'éditeur Atom
L'éditeur open source le plus populaire

DVWA
Damn Vulnerable Web App (DVWA) est une application Web PHP/MySQL très vulnérable. Ses principaux objectifs sont d'aider les professionnels de la sécurité à tester leurs compétences et leurs outils dans un environnement juridique, d'aider les développeurs Web à mieux comprendre le processus de sécurisation des applications Web et d'aider les enseignants/étudiants à enseigner/apprendre dans un environnement de classe. Application Web sécurité. L'objectif de DVWA est de mettre en pratique certaines des vulnérabilités Web les plus courantes via une interface simple et directe, avec différents degrés de difficulté. Veuillez noter que ce logiciel

SublimeText3 version anglaise
Recommandé : version Win, prend en charge les invites de code !

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)