La différence entre le Module et la Classe en Python
Puis-je assigner une valeur à une variable dans le module. Si oui, quelle est la différence entre une classe et module.
PS: je suis un java gars. Dans le cas où si son aide dans la façon d'expliquer. Merci.
En Python, les modules, les classes, les méta-classes, etc. tous les objets ainsi. Vous pouvez définir les arguments d'un module. La différence est qu'une classe est en forme d'une manière spéciale avec un
Bien, assez bien à première vue la différence: module == fichier, de classe == partie d'un fichier. En Java, cependant, les gens ont tendance(ou mieux dit, sont contraints d') ont une classe par fichier de structure. Sinon, vous êtes capable de faire cela:
Vous ne pouvez pas créer des instances d'un module. Les Modules sont singletons, un seul exemplaire existe. Vous pouvez créer des instances de classes, d'autre part. C'est en Java. Les Classes de soutien à l'héritage, les modules ne sont pas. Les Classes de soutien metaclasses, les modules ne sont pas. Les Classes de soutien des descripteurs, des modules n'est pas.
Et oui, globales dans les modules sont les attributs d'un objet module, vous pouvez ajouter et supprimer et modifier ces attributs.
Aussi une question semblable a été posée de manière générale (même si avec
__init__
, etc.Bien, assez bien à première vue la différence: module == fichier, de classe == partie d'un fichier. En Java, cependant, les gens ont tendance(ou mieux dit, sont contraints d') ont une classe par fichier de structure. Sinon, vous êtes capable de faire cela:
import time;time.my_variable = 1
et vous pouvez l'utiliser par la suite dans le champ d'application.Vous ne pouvez pas créer des instances d'un module. Les Modules sont singletons, un seul exemplaire existe. Vous pouvez créer des instances de classes, d'autre part. C'est en Java. Les Classes de soutien à l'héritage, les modules ne sont pas. Les Classes de soutien metaclasses, les modules ne sont pas. Les Classes de soutien des descripteurs, des modules n'est pas.
Et oui, globales dans les modules sont les attributs d'un objet module, vous pouvez ajouter et supprimer et modifier ces attributs.
Aussi une question semblable a été posée de manière générale (même si avec
ruby
tag), de sorte que vous pouvez le voir, même ça.OriginalL'auteur liwevire | 2017-04-03
Vous devez vous connecter pour publier un commentaire.
Module:
Comme le doc dire.
Donc un module en python est tout simplement une façon d'organiser le code, et il contient les classes python ou que des fonctions.
Si vous avez besoin de ces classes ou des fonctions de votre projet, vous avez juste
import
.Par exemple, le
math
module en python contient tout un tas de fonctions, et que vous venez d'appeler ceux nécessaires (math.sin
).Juste un coup d'oeil à ce question.
D'autre part, un python de classe est quelque chose de semblable à une classe java, c'est seulement structuré de manière un peu différente.
OriginalL'auteur Leonardo Chirivì
Il y a énorme différences entre les classes et modules en Python.
Classes sont des modèles qui vous permettent de créer des instances avec des attributs et lié à la fonctionnalité. Les Classes de soutien à l'héritage, metaclasses, et les descripteurs.
Modules ne pouvez pas faire tout cela, les modules sont essentiellement singleton instances interne
module
classe, et tous leurs globales sont des attributs sur l'module
instance. Vous pouvez manipuler les attributs nécessaires (ajouter, supprimer et mettre à jour), mais de prendre en compte le fait que ces toujours la forme de l'espace de noms global pour tous définis dans le code de ce module.À partir d'une perspective Java, les classes ne sont pas si différent ici. Les Modules peuvent contenir plus d'une seule classe; cependant, les fonctions et tous le résultat de toute autre expression Python peuvent être globales dans un module de trop.
De manière générale ballpark directive:
Puis stocker des données où il est logique de votre application. L'état Global va dans les modules (et les fonctions et les classes sont tout autant de l'état global, chargé au début). Tout le reste passe dans d'autres structures de données, y compris les instances de classes.
OriginalL'auteur Martijn Pieters
Puis-je assigner une valeur à une variable dans le module?
Oui.
Le concept de
module
se réfère à un seul fichier Python qui peuvent être importés (par importation, vous avez l'accès à des variables/méthodes/classes définies dans ce module).C'est souvent dans les discussions avec le concept
package
, qui est un dossier avec__init__.py
. Un package peut contenir des sous-paquets ou des modules, et dans le même temps, similaires aux modules, peut définir des variables/méthodes/classes importées à l'intérieur de son__init__.py
.Le but d'avoir des modules/packages Python est une sorte de semblable à avoir des packages en Java: pour les contenir et de les classer réutilisables codes, pour résoudre le conflit de nommage et ainsi de suite.
En outre, Python dispose également d'une interface de classe nommé
module
, tout commelist
,tuple
,dict
(notez que Python builtin classes ne suivez pas les CapWords convention de nommage due à des raisons d'héritage). Unmodule
instance représente le module/package importé.Lorsque vous utilisez le
import
pour importer un module (un seul fichier Python) ou un forfait (dossier avec__init__.py
), généralement1. une nouvelle instance de
module
classe sera créée2. les classes/méthodes/variables définies dans laquelle l'importation de fichier Python sera ajouté que les attributs de cette
module
exemple (si c'est un paquet, il sera les classes/méthodes/variables définies dans__init__.py
qui sont ajoutés).Donc, puisque c'est juste un exemple de
module
classe, vous pouvez assigner une valeur à l'attribut de l'instance ou autre instance de la classe des opérations.console:
OriginalL'auteur royl8