* Un mémorandum écrit par un débutant Python avec illusion car j'ai compris un peu les possibilités futures des annotations de type Python 3.6. </ font>
Python 3.6 est sorti à la fin de l'année lorsque le calendrier de l'Avent était sur le point d'atteindre sa fin.
La version Python 3.6 du point de vue de Windows peut être résumée comme suit.
La conversion UTF-8 par défaut est importante. En bref, il sera comparable à Linux / Mac, donc les personnes dans la zone 2 octets seront moins susceptibles de souffrir d'un stress supplémentaire autour du code de caractère.
Téléchargez et installez le programme d'installation à partir du site officiel.
Si vous vous sentez un peu mal à l'aise car il vient de sortir, vous pouvez l'installer en décommentant «Installer le lanceur pour tous les utilisateurs» pour les utilisateurs temporaires (..?)
Après l'installation, saisissez python dans la console pour entrer dans l'environnement interactif python3.6:
f "Je m'appelle {nom}"
La nouvelle fonction de python3.6 "Chaîne de caractères formatée littérale (PEP-498)" peut être utilisée sans aucun problème.
Dans ce qui suit, nous discuterons brièvement des annotations de type qui permettent des descriptions typées en Python.
Dans le langage dynamique python, il n'est pas nécessaire de spécifier le type dans la définition de variable.
Exemple ①:
person.py
class Person :
def __init__(self):
self.name = ''
self.age = 0
def __init__(self,name ,age):
self.name = name
self.age = age
def greet(self):
print(f"Hi, I'm {self.name} .")
print(f"I am {self.age} years old.")
Si vous l'essayez dans un environnement interactif:
La variable age peut être de type int ou str.
En Python3.6, le typage des variables peut être fait largement.
Ajoutez un peu à example (1) et spécifiez le type de la variable d'instance de la classe.
Exemple ②:
person.py
class Person :
#Ajouter une annotation de type
name : str
age : int
def __init__(self):
self.name = ''
self.age = 0
def __init__(self,name ,age):
self.name = name
self.age = age
def greet(self):
print(f"Hi, I'm {self.name} .")
print(f"I am {self.age} years old.")
Résultat de l'exécution:
En raison de l'étonnement, certaines personnes peuvent se sentir mal à l'aise que le résultat de l'exécution de Q Taro ne change pas, sinon (bien que vous puissiez décrire le type dans l'argument de la méthode de la classe Person, mais cela Même si le résultat ne change pas). La description qui spécifie le type dans Python 3.6 est appelée annotation de type (statique) et est utilisée pour la vérification de type dans le développement à grande échelle, etc. ("Nom de classe .__ annotations __" comme indiqué dans la dernière ligne du résultat de l'exécution. (Utilisé comme ça). Elle est différente de la spécification de type dans les langages de compilation tels que Java et C #.
--Pour mypy d'utiliser pratiquement les annotations de type Python, lisez le document de traduction suivant.
http://qiita.com/t2y/items/2a1310608da7b5c4860b
Utiliser Python pour appeler des bibliothèques de calcul, etc. Je n'utiliserais pas d'annotations de type pour le moment (cela ne semble pas très avantageux). Au contraire, dans l'équipe qui gère de nombreux services Web, etc. avec python, la vérification de type à l'aide de l'annotation de type sera effectuée.
--Référence: je vais l'utiliser sur les serveurs CI, etc., article http://qiita.com/k-saka/items/8f05c89f675af219e081
Comme je l'ai appris de l'introduction à Python, en plus de diverses versions de Cpython (série 2.x, série 3.y) qui ont diverses implémentations en Python, à commencer par pypy, des systèmes d'implémentation sur Jython, Ironpython, DartVM, etc. Et ainsi de suite ... Bien sûr, il y a plein d'outils dans la bibliothèque, juste pour les langages historiques. Il existe de nombreuses bibliothèques combinées avec les langages C / C ++. Les bibliothèques bien connues sont bonnes, mais il n'y a aucune garantie qu'elles fonctionneront avec votre implémentation lorsque vous souhaitez utiliser une bibliothèque créée par une personne incroyable. Je pense que c'était jusqu'à présent la culture open source de python que vous devriez lire la source et appliquer le correctif par vous-même, mais cela semble un peu difficile avec python qui est devenu majeur en raison du récent boom des big data et de l'IA. ..
Je ne comprends pas beaucoup mypy, donc je ne peux pas l'écrire comme une histoire concrète, mais je pense qu'il y aura bientôt un excellent outil pour utiliser des annotations de type Python autour de l'interface avec d'autres langages. Ou (et attendez-vous).
Récemment, j'ai mentionné python à plusieurs reprises dans Advent Calendar of New Language nim. Je me demandais s'il existe de nombreux outils géniaux qui combinent python et C / C ++, mais je pense que nous pouvons également créer un outil qui combine nim et python qui sont compilés en C / C ++. si tu peux, Sous une forme qui tire parti des fonctionnalités du langage de compilation nim, qui a une grammaire de type python.
Le premier est un outil qui réécrit automatiquement le modèle défini en python dans le code source de nim.
En fait, l'exemple de code ci-dessus ② est une réécriture de l'exemple d'utilisation de la structure affiché comme "grab" sur la page supérieure du site officiel de nim en python (puisque python n'a pas de structure, je l'ai écrit en classe ..) Une description plus simple de type python serait possible).
person.nim
type Person = object
name: string
age: int
proc greet(p: Person) =
echo "Hi, I'm ", p.name, "."
echo "I am ", p.age, " years old."
let p = Person(name:"Jon", age:18)
p.greet() # or greet(p)
Des discussions comme coffeescript-> javascript sont devenues monnaie courante ces dernières années, et il semble assez probable d'automatiser ces conversions elles-mêmes, alors j'aimerais contester après m'être un peu plus familiarisé avec les deux langues. Et à partir de maintenant, la clé de la facilité d'utilisation est la génération automatique d'interfaces qui incluent la vérification de type mutuelle et la sécurité nulle.
Avec la tendance récente à l'ouverture (?), Microsoft semble devenir une entreprise compatible avec python (python est pris en charge dans Visual Studio). Avec l'utilisation généralisée d'iOS / Android Est-ce à cause du sentiment de crise que la survie de l'entreprise sera mise en péril si elle devient la méthode unijambiste C #?
C'est xamarin, né de l'environnement mono compatible .NET dérivé de la culture Linux, qui a sauvé Microsoft. L'histoire que les utilisateurs de C # peuvent développer sur iOS / Android en plus de Windows est très attrayante. mono est un environnement CLR (environnement d'exécution C #) écrit en langage C ci-dessous. Dans Xamarin, le code est également écrit dans la prise en charge objective-C / C ++ pour iOS / Android. Xamarin est un «frères de langage de la série C». xamarinがより広く使われ始めると、もっともメジャーなスクリプト言語のひとつpythonを使いたい、C系のライブラリを呼びだしたいとの要求が広まるものと考えられる。ということで、.NET/mono/xamarin界隈では,近いうちにironpythonの話題が登場するのではないかと考える。その時、言語と実行系の組み合わせだけで複雑系になるpython周りの開発現場で型アノテーションを用いた静的解析が大規模に活用されるのではないか(...されるとまずいことになりそうな...)。
--Référence: Nouveau lecteur d'Iron Python https://www.infoq.com/jp/news/2016/08/IronPython-Leadership ironpython
J'ai changé de force la ligne de frappe du matériel python en xamarin pour des souvenirs personnels.
Xamarin a été open-source depuis son acquisition par Microsoft, et au cours des six derniers mois environ, beaucoup d'informations ont été publiées, il semble donc qu'il est enfin temps de l'utiliser. En fait, il y a des gens qui veulent utiliser xamarin avec python, non? ... Donc, dès que j'ai voulu jeter un regard python (et parfois nim) autour de xamarin, ce qui pourrait sauver Microsoft à l'avenir :)
Recommended Posts