2017-06-27 30 views
2

静的型付けはPython 3.6で利用できるので、pythonで静的型付けを強制する方法

pythonプロジェクトまたはpythonファイルのセットに対して静的型を強制することは可能ですか?

+0

https://docs.python.org/3/whatsnew/3.6.html – glegoux

+2

を参照してください。静的な型指定は、まだPythonでは利用できません**。タイプヒントやタイプアノテーションは、静的タイピングと同じではないmypyのようなスタティックアナライザー用です。 – phd

+0

@phdあなたが間違っていると私には思われますが、それはPython 3.6にあります。 'n = int(input'number: ') def g(s:str) - > str: 戻り値'これは '+ s g(n)' はタイプエラーを表示します。私はこれをヒントと呼ぶことはしません。これはfunc gがstrを受け取って返すことを保証します。 3.6 docsを読んでください。 – Drako

答えて

1

持っThe Zen of Python, by TimPetersの2行目によると

静的な型指定がPythonで完全に強制されていれば、もはやPythonにはなりません。これはダック型の動的言語であり、結果としてすべてのダイナミズムが緩和されます。静的型の言語を実際に使用するつもりなら、Pythonを使わない方が良いでしょう。

2

static typingを強制することはできませんが、チェッカーはmypyとして使用できます。あなたはExplicit is better than implicit.静的型付けは、あなたは静的型付けのいくつかの利点を得るのを助けるかもしれないのpython3でannotationsを、使用することができます良いことですが、Simple is better than complex. ...

$ python3.6 
>>> import this 
The Zen of Python, by Tim Peters 

Beautiful is better than ugly. 
Explicit is better than implicit. 
Simple is better than complex. 
Complex is better than complicated. 
Flat is better than nested. 
Sparse is better than dense. 
Readability counts. 
Special cases aren't special enough to break the rules. 
Although practicality beats purity. 
Errors should never pass silently. 
Unless explicitly silenced. 
In the face of ambiguity, refuse the temptation to guess. 
There should be one-- and preferably only one --obvious way to do it. 
Although that way may not be obvious at first unless you're Dutch. 
Now is better than never. 
Although never is often better than *right* now. 
If the implementation is hard to explain, it's a bad idea. 
If the implementation is easy to explain, it may be a good idea. 
Namespaces are one honking great idea -- let's do more of those! 
関連する問題