Python documentation
<span class="mw-headline" id="Python_documentation« >Python documentation
La traduction d’un programme se déroulera en deux phases. Tout d’abord, préparer le programme, phase, il est préférable de continuer tout au long du développement, qui consiste à écrire le programme en anglais (en général), et marquer tous les textes et toutes les données qui sont spécifiques à l’anglais ou les États-Unis. Et en second lieu la traduction et l’adaptation à chaque langue ou pays.
outils GNU gettext sont fournis avec certains systèmes tels que les distributions GNU / Linux. Ils seront utilisés pour effectuer des opérations pour les développeurs et les localisateurs, mais ne sont pas utiles sur la machine de l’utilisateur, où le programme aura besoin du module gettext python, qui est livré en standard avec la distribution python.
outils GNU gettext sont très utiles, s’il n’est pas installé sur votre système, il est recommandé de télécharger sur leur site officiel. Cependant, pour s ‘sans elle, il ya deux programmes qui sont livrés en standard avec la distribution python, et msgfmt.py pygettext qui pourraient éventuellement remplacer xgettext et msgfmt tools.But GNU gettext ces outils ne remplissent pas toutes les fonctions de GNU gettext, et sont considérés comme obsolètes (bien que la documentation officielle de Python conseille). En particulier, de traduire une interface réalisée avec glade, vous devez utiliser les outils GNU gettext.
La deuxième étape consiste à modifier le programme pour définir les _ function () en utilisant le module python gettext. Cela se fait simplement comme un système de type GNU / Linux, mais nécessite plus de code sous Microsoft Windows, de sorte que vous pouvez trouver un exemple que pour GNU / Linux, et un exemple multi-plateforme.
Le seul fichier à modifier est le fichier qui sera exécuté (coincoin.py). Bien qu’il soit important de modules avec des chaînes marqués _ (), ils seront également traduits (si vous ne voulez pas que cela se produise, consultez la documentation python).
Les emplacements seront stockés dans un local folder.This est habituellement placés dans / usr / share / locale dans les systèmes GNU, et détecté automatiquement par le module gettext, mais doit être spécifié comme Microsoft Windows (ici le dossier local dans le dossier parent lorsque le exécutable est utilisé, mais vous pouvez choisir un autre).
Exemple uniquement pour GNU / Linux (et probablement d’autres non-Microsoft Windows): application = ‘coincoin’import gettextgettext.install ()[…]# application Si votre programme utilise glade, précisez bien la région gettext application: gui gtk. glade.XML = (fname = ‘coincoin.glade’ domain = application)
Exemple multi-plate-forme: application = ‘os.name coincoin’import gettext ==’ nt ‘:# # Code pour les fenêtres Windows de Microsoft chemin de dossier local win_local_path = os.path.abspath (os.path.join (os.path. Pardi ‘local’)) # Code pour l’interface gtk.glade.bindtextdomain clairière possible (win_local_path application) gtk . glade.textdomain (application) du code python # pour le programme (le module local # pour déterminer le langage courant) lang = locale.getdefaultlocale locales d’importation () [0] [: 2] essayer: gettext.translation cur_lang = localedir application ( = win_local_path, langues = [lang]) cur_lang.install () except IOError: # Si la langue locale n’est pas supportée, # définit toute façon _ () _ = lambda texte: texte # Si il ya des chaînes à traduire dans d’autres modules # , généralement gérés par des cur_lang.install # () ou gettext.install (), # vous devez également définir _ (). Exemple: _else sous_module._ = # code pour les systèmes d’exploitation autres gettext.install ()[…]# application Si votre programme utilise glade, préciser le champ de captage gettext # application: gui = gtk.glade.XML (fname = ‘ coincoin.glade ‘domain = application)
Il ya une dernière étape: la création d’un modèle de la traduction. Cela permettra de créer de nouvelles traductions et de les mettre à jour. Nous allons utiliser l’outil xgettext.Dans un terminal, allez dans le dossier où sont stockés des modules Python et tout clairière fichiers, et exécutez la commande: coincoin.pot xgettext-k_-o-kN_ *. py *. clairière
Coincoin.pot fichier est obtenu, il est le modèle pour de futures traductions. A chaque changement de programme nécessitera la mise à jour en redémarrant la commande.
En génie logiciel, le singleton est un modèle de conception (design pattern) dont le but est de restreindre l’instanciation d’une classe à un objet (ou quelques objets seulement). Il est utilisé lorsque nous avons besoin d’exactement un objet de coordonner les opérations dans un système. Le modèle est parfois utilisé pour son efficacité lorsque le système est plus rapide et utilise moins de mémoire avec quelques objets avec de nombreux objets similaires.
Il met en œuvre le singleton en écrivant une classe contenant une méthode qui crée une instance uniquement s’il n’en existe pas. Sinon, elle renvoie une référence à l’objet existe déjà. Dans beaucoup de langues de type objet, il est nécessaire de veiller à ce que le constructeur de classe est privé, faire en sorte que la classe peut être instanciée par des moyens autres que la méthode de création contrôlée.
Le singleton doit être mis en œuvre avec soin multi-threaded.Si deux threads s’exécutent en même temps, la méthode de création comme le seul objet n’existe pas, il est essentiel de veiller à ce que seule sera l’objet, et l’autre d’obtenir une référence à ce nouvel objet. La solution classique à ce problème consiste à utiliser l’exclusion mutuelle pour indiquer que l’objet est instancié.
Java
Une autre solution existe encore. Il est d’alléger la charge de travail de la méthode getInstance déplacement de la création de l’instance unique dans la déclaration de la variable de référence à l’instance unique:
Dans le cas d’une application multi-tâches devraient plutôt envisager la solution du support de démarrage sur demande.
C
Voici une implémentation possible en C, connue sous le nom «singleton Meyers’. L’objet singleton est statique et locale. Attention: cette solution n’est pas sans danger dans un environnement multi-thread, mais sert plutôt à donner une idée de la façon dont un singleton à être effectivement utilisé dans un constructeur project.No gros logiciels ou destructeur doit être public classes qui héritent le singleton.
Dans un langage basé sur des prototypes, qui sont utilisés pour les objets mais pas des classes, un singleton signifie seulement un objet qui n’a pas de copies, et n’est pas utilisé comme prototype pour d’autres objets.
ActionScript 3
Vous trouverez un article sur le sujet: (fr) Une mise en œuvre du modèle Singleton
Python
Simple mise en œuvre
Les deux variables par référence à la même instance. Cette solution ne nécessite pas une méthode spécifique pour accéder à l’instance de classe (par rapport à d’autres langues, où il est de coutume de mettre en œuvre une méthode getInstance (), par exemple).
Considérations ‘avancées’
Selon le développeur Python Alex Martelli, le modèle de conception Singleton a un nom élégant mais trompeur, car il met l’accent sur l’identité plutôt que sur l’état de l’objet. D’où l’apparition d’un modèle alternatif, appelé Borg, pour lequel toutes les instances part
agent le même state.It est généralement acceptée par la communauté des développeurs Python que le partage entre les organismes d’État est plus élégant que la mise en cache de la création d’instances identiques lors de l’initialisation de la classe.
PHP 5
Avant PHP 5.3: Les défis de l’héritage d’une classe Singleton
Il est important de noter qu’avant PHP 5.3, il n’est pas possible d’hériter d’une classe de type Singleton. En effet, l’accesseur self:: fait toujours référence à la classe dans laquelle il est écrit.L’exemple ci-dessous illustre ce problème.
Depuis PHP 5.3: le mot-clé statique et Late Static Bindings
PHP 5.3, l’apparition de liaisons statiques fin sous la forme d’un accesseur static:: similaire à l’auto:: résout ce problème. En effet, l’accesseur static:: se réfère à la classe comme on l’appelle. Il peut être héritée. C’est pourquoi nous parlons de la fin Static Bindings (Résolution statique à la volée), par opposition à une résolution statique lors de la compilation du script.
php === Singleton Sérialisation
Singleton en php répondu N’aime pas java (ou autres), Le réinitialise instance statique à chaque requête …… Source: http://php.net/manual/en/language.oop5.patterns.php
Ce message est très discret dans le manuel et ces points assez parler pour eux-mêmes, il ya une bonne méthode équivalente à l’objet java toString qui retourne l’identificateur d’objet php est la méthode spl_object_hash Utilisez cette méthode pour tester votre singletons, vous serez surpris de voir que l’instance de votre classe est répété chaque fois, aussi utiliser la méthode magique __destruct, vous verrez aussi que votre singleton va par la fenêtre chaque fois que vous utiliserez.
Il ya une solution pour empêcher la destruction de l’objet automatique.En effet, lorsque l’héritage de classe, le constructeur et le destructeur de la classe parent ne sont pas automatiquement déclenchée. Si vous jugez nécessaire, vous devez les activer explicitement. Source: http://stephaneey.developpez.com/tutoriel/php/php5_nouveautes/
Attention, toutefois, comprendre un destroyer de la classe des enfants et omettre la destruction de la classe parente en elle de sorte que le destroyer de la classe mère n’est pas déclenché.
Dans l’exemple ci-dessus le constructeur parent est tiré, il permettra d’identifier l’objet, l’enfant est un feu très destructrice (en omettant délibérément la destruction de la société mère), note également que l’enfant n’a pas été propre constructeur, malheureusement, vous pouvez comprendre que le objet détruit est en effet l’objet parent Singleton, ce qui est normal parce SingletonChild EST A ‘SingletonParent.
Une alternative possible est de bloquer la destruction des objets en changeant la visibilité des destroyers, qui n’est pas le plus élégant, il est la classe qui permet ReflectionClass y compris les cas de construction nouvel objet, qui pourrait résoudre cette solution singleton php, voir: http: / / php.net / manual / fr / reflectionclass.newinstance.php
Dernier point important, qui maintient la procédure, au moins pour le manipuler d’une page à:si une application utilise la session et stocke les objets, ces objets sont sérialisés automatiquement à la fin de chaque page PHP, et sont désérialisé automatiquement à chaque page. Cela signifie que, une fois mis en session, chaque objet peut apparaître dans n’importe quelle page de la demande ou la session est démarrée. Source: http://php.net/manual/fr/language.oop5.serialization.php
Note la mise en œuvre de sérialisation, il permet à l’objet singleton, en effet rappelé l’objet d’une page à une autre n’est pas en cours de sérialisation session, mais un objet sérialisé dans le pattern singleton. L’héritage du jeu, parce que, sur le cœur de la sérialisation solution peut avoir lieu directement dans l’un et un seul objet.
Divers
Django est un framework de développement web en Python. Il vise à rendre le développement web rapide et facile. Le projet slogan «Le framework web pour les perfectionnistes sous pression.’
Principes
Django est un cadre qui reflète le principe MVC ou MTV (la vue est géré par un modèle) composé de 3 parties:
En plus de l’accès aux données API, une interface d’administration est généré à partir du modèle de données fonctionnelles.Un système de validation des données saisies par l’utilisateur est également disponible et affiche des messages d’erreur automatiquement.
Principes
Django est un cadre qui reflète le principe MVC ou MTV (la vue est géré par un modèle) composé de 3 parties:
En plus de l’accès aux données API, une interface d’administration est généré à partir du modèle de données fonctionnelles. Un système de validation des données saisies par l’utilisateur est également disponible et affiche des messages d’erreur automatiquement.
Histoire
objectif principal de Django est de faciliter la mise en œuvre du réseau complexe relié bases de données. Par cadre, Django peut être considéré comme une boîte à outils où chaque module peut fonctionner independently.The meilleur exemple de cette modularité est la plate-forme Google App Engine de développement, où le cœur MNO a été remplacé par un BigTable API sur Google. Guido Van Rossum, le créateur du langage Python a participé activement à cette plate-forme.
‘