Python 3.6 sous Windows ... et vers Xamarin.

* 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>

Les utilisateurs de Windows voudront peut-être commencer à utiliser Python 3.6 dans un proche avenir.

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.

  • Le littéral de chaîne est devenu plus pratique et la description du type (annotation) a été développée.
  • ** Même dans l'environnement Windows ** Le code de caractère par défaut est désormais UTF-8. ――Windows OS n'a rien à voir avec Python, il est donc normal de l'utiliser expérimentalement sans penser à quoi que ce soit.

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.

Installer sur Windows

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 (..?) py36.PNG

Après l'installation, saisissez python dans la console pour entrer dans l'environnement interactif python3.6:

py36-1.PNG

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.

  • Pour en savoir plus sur les nouvelles fonctionnalités de python3.6, y compris les littéraux de chaîne formatés Vous devriez lire la série de blogs suivante. http://atsuoishimoto.hatenablog.com/entry/2016/12/25/122220

Connaître les annotations de type Python 3.6.

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: py361.PNG

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: py362.PNG

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

Pensez à l'avenir des annotations de type Python.

Au départ, il semble qu'il commencera à être utilisé à partir du site de développement d'équipe.

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

Il semble qu'un outil tueur puisse être publié.

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).

(Bonus) Ce sur quoi je veux travailler personnellement.

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.

Potentiel pour les utilisateurs Windows / Xamarin

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

La fin

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

Python 3.6 sous Windows ... et vers Xamarin.
Python sur Windows
Lier Modelica et Python sous Windows
[Kivy] Comment installer Kivy sur Windows [Python]
python basic ② sous windows
Installez python sur Windows
Installez et exécutez Python3.5 + NumPy + SciPy sur Windows 10
Mettez MicroPython sur Windows pour exécuter ESP32 sur Python
(Windows) Causes et solutions de contournement pour UnicodeEncodeError dans Python 3
Remarques sur l'installation de Python3 et l'utilisation de pip sous Windows7
Installez OpenCV 4.0 et Python 3.7 sur Windows 10 avec Anaconda
[Python] Comment installer OpenCV sur Anaconda [Windows]
[Note] Installation de Python 3.6 + α sur Windows et RHEL
Installez la version ZIP Python et pip sur Windows 10
Mettez Cabocha 0.68 dans Windows et essayez d'analyser la dépendance avec Python
Exécutez Openpose sur Python (Windows)
Comment installer Python [Windows]
Installer watchdog sur Windows + Python 3.3
Python sur Ruby et Ruby en colère sur Python
Installez Python et Flask (Windows 10)
Développement Python + Kivy sous Windows
Sphinx-autobuild (0.5.2) sous Windows7, Python 3.5.1, Sphinx 1.3.5
Installation de Python la plus rapide sous Windows
Créer un environnement Python sur Windows
Mettez à jour le python que vous aviez sur votre Mac à 3.7-> 3.8
Construire un environnement Python avec Windows
J'ai exécuté python sur Windows
[Python] [Chainer] [Windows] Installer Chainer sous Windows
Utiliser Python sur Windows (PyCharm)
Comment intégrer mod_wsgi dans Apache sur Windows Python
[Windows] [Python3] Installer python3 et Jupyter Notebook (anciennement ipython notebook) sous Windows
Créez un environnement shell et python décent sur Windows
Pour éviter de voir l'enfer lors de l'installation de django-toolbelt avec windows, heroku et python3.4 (64bit) ...
Mémo de construction de l'environnement Python sur Windows 10
Notes sur Python et les types de dictionnaire
Installation de Kivy sur Windows10 64 bits Python3.5
[Introduction à Python3 Jour 1] Programmation et Python
Construction de l'environnement Anaconda Python sous Windows 10
Comment utiliser Dataiku sous Windows
installation de python2.7 dans un environnement Windows 32 bits
Introduction à Python Hands On Partie 1
Installez xgboost (version python) sur Windows
Installez Python sur Windows + pip + virtualenv
Construisez et installez OpenCV sur Windows
Installez Pytorch sur Blender 2.90 python sous Windows
Comment installer pycrypto sur Windows
Comment déployer django-compresseur sous Windows
Installez pyenv sur MacBookAir et basculez Python à utiliser
Installation de Kivy-Designer sur Windows10 64 bits Python3.5
Installer python et Visual Studio Code sur Windows10 (version d'avril 2020)
Mecab / Cabocha / KNP sur Python + Windows
Maîtriser le pip et la roue dans Windows
Installer l'environnement de développement Python sur Windows 10
Journalisation Python et vidage vers json
Fichier CGI Python créé sous Windows
Sélénium et python pour ouvrir Google
J'ai essayé de changer le script python de 2.7.11 à 3.6.0 sur Windows10
Étapes pour installer python3 sur Mac
Premiers pas avec Python 3.8 sous Windows
Reproduire la recherche à une touche avec Python 3.7.3. (Windows 10)
Comment installer Music 21 sur Windows