タグ付けされた質問 「typing」

4
メソッドの戻り値の型がクラス自体と同じであることをどのように指定しますか?
私はPython 3に次のコードを持っています: class Position: def __init__(self, x: int, y: int): self.x = x self.y = y def __add__(self, other: Position) -> Position: return Position(self.x + other.x, self.y + other.y) しかし、私のエディター(PyCharm)は、参照の位置を(__add__メソッド内で)解決できないと言っています。戻り値の型が型であることを期待するように指定するにはどうすればよいPositionですか? 編集:これは実際にはPyCharmの問題だと思います。警告の情報とコード補完を実際に使用します しかし、私が間違っていて、他の構文を使用する必要がある場合は修正してください。

9
「型なし」とは、学術的なCSの世界で「動的に型付けされる」という意味ですか?
「JavaScriptは型付けされていません」と書かれたスライドを読んでいます。これは私が本当だと思っていたものと矛盾していたので、私はより多くを試し、学ぶために掘り始めました。 すべての答えであるJavaScriptの型なし言語?JavaScriptは型付けされておらず、静的、動的、強い、弱い型付けのさまざまな形式の例を提供しており、私が慣れ親しんでいると満足しています。したがって、それは適切な方法ではありませんでした。 そこで私はJavaScriptの作成者であるBrendan Eichに尋ねたところ、 学術タイプは、「静的タイプがない」ことを意味するために「型なし」を使用します。それらは値が型を持っていることを確認するのに十分賢いです(そうです!)。コンテキストが重要です。 学問に焦点を当てたコンピューターサイエンスの人々は、「動的型付け」の同義語として「型なし」を使用しますか(これは有効ですか?)、またはこれよりも深いものはありますか?私は、コンテキストが重要であるというブレンダンに同意しますが、私の現在の「行きたい」本はこのトピックについてボールを演じていないので、説明の引用は素晴らしいでしょう。 私は私の理解を深めることができるように、そしてウィキペディアでさえこの代替の使用法を参照していないので(これはとにかく見つけることができます)、これを釘付けにしたいと思います。私が間違っている場合、将来この用語を使用したり、その用語の使用を疑ったりしたくありません:-) (私はまた、Smalltalkが「型付けされていない」と言っているトップSmalltalkerを見たことがあるので、このクエストで私を始めたのは1回限りではありません!:-))

3
* argsおよび** kwargsの型注釈
いくつかのインターフェイスを作成するために、抽象基本クラスを使用してPythonの型注釈を試しています。*argsandの可能なタイプに注釈を付ける方法はあり**kwargsますか? たとえば、関数への賢明な引数が1つintまたは2つintのであることをどのように表現しますか?type(args)与えTuple私の推測のようにタイプに注釈を付けることだったのでUnion[Tuple[int, int], Tuple[int]]、これは動作しません。 from typing import Union, Tuple def foo(*args: Union[Tuple[int, int], Tuple[int]]): try: i, j = args return i + j except ValueError: assert len(args) == 1 i = args[0] return i # ok print(foo((1,))) print(foo((1, 2))) # mypy does not like this print(foo(1)) print(foo(1, 2)) mypyからのエラーメッセージ: t.py: …

2
TypeScriptインターフェイスプロパティのタイプを「抽出」する方法はありますか?
いくつかのインターフェースを含むライブラリXのタイピングファイルがあるとしましょう。 interface I1 { x: any; } interface I2 { y: { a: I1, b: I1, c: I1 } z: any } このライブラリを操作するには、とまったく同じタイプのオブジェクトを渡す必要がありますI2.y。もちろん、ソースファイルに同じインターフェイスを作成できます。 interface MyInterface { a: I1, b: I1, c: I1 } let myVar: MyInterface; しかし、ライブラリからのものを最新の状態に保つという負担がかかります。さらに、それは非常に大きくなり、多くのコードの重複が発生する可能性があります。 したがって、インターフェイスのこの特定のプロパティのタイプを「抽出」する方法はありますか?似たようなものlet myVar: typeof I2.y(これは機能せず、「名前I2が見つかりません」エラーが発生します)。前もって感謝します。 編集:TS Playgroundで少し遊んだ後、次のコードが私が望んでいることを正確に達成していることに気づきました: declare var x: I2; let y: typeof …

5
Vimユーザーの皆さん、右手はどこに置いていますか?[閉まっている]
休業。この質問は意見に基づいています。現在、回答を受け付けていません。 この質問を改善してみませんか?この投稿を編集して、事実と引用で回答できるように質問を更新してください。 3年前休業。 この質問を改善する 長い間vimを使用しているユーザーは、指をつけたままにしますjkl;かhjkl、それとも通常モードにしますか? 標準のタッチタイピングでは、右手のホームポジションは人差し指がjキーにあるため、指がオンになりjkl;ます。 ただし、標準のvimモーションキーはhjklです。 私は10年以上後に戻ってのvimに取得しています(私は注意を払っていなかったときOMG、私は古いだ)と私がの方に引き寄せ見つけるhjklIなど、...しかし、それはそれは難しい右上文字を入力することができ、中括弧後で再トレーニングする必要がなく、最も効率的/実用的な方法を使用するように自分自身をトレーニングしたい。 長い間、筋金入りのvimユーザー、ベストプラクティスは何ですか? 注意: タッチタイピストはどのようにviをナビゲートするか 私はそれがおよそ故意開拓ているため、これは「主観的」試験に合格だと思い無意識のベストプラクティスをしていないだけで、人々のおよそ好み

12
Dvorakタイピングはプログラミングに適していますか?[閉まっている]
現在のところ、この質問はQ&A形式には適していません。事実、参考文献、専門知識によって回答が裏付けられることを期待していますが、この質問は、討論、議論、投票、または拡張ディスカッションを求める可能性があります。この質問を改善でき、再開できると思われる場合は、ヘルプセンターにアクセスしてください。 8年前に閉鎖。 私はいつもより生産的になる方法を探しています。私はDvorakキーボードを使用したタイピングについてたくさん読んでいます。 これは通常の散文を書くためにはるかに生産的であるように見えますが、プログラミングについてはどうですか? セミコロン、コロン、角かっこ、アンパサンドの使用は、日常のタイピングよりもプログラミングではるかに一般的であるため、効果があるかどうかは疑問です。 誰もがこれで何か経験がありますか?
113 typing  dvorak 

2
ジュリアにおける機能署名と派遣行動の明確化
ジュリア(1.2)REPLでいくつかのことを試していましたが、ディスパッチについてわからないことを思いつきました。 私は最初に私が期待した方法で機能しているこのことを試しました: f(a::T) where {T <: Int} = "Test" f(3)の呼び出しは、 Int <: Int == true f( "Hello")を呼び出すと、「MethodError:no method matching」エラーが発生します。 String <: Int == false 次に、私はこのメソッドを試しましたが、なぜそれを呼び出すことがいくつかのケースで機能するのかわかりません: f(a::T, b::U) where {T, U <: T} = "Another Test" f(3、3)を呼び出すと(期待どおり)機能します しかしf(3、 "Hello")も機能し、「MethodError:no method matching」をスローしません??? 私はそれを考えました(TがIntになり、Uが文字列になるため)String <: Int == false??? ここにはかなり簡単なものが欠けていると思いますが、見つかりません...これが私の質問です。なぜf(3、 "Hello")が機能しているのですか? さらに、私はこのコードスニペット(2番目のメソッドシグネチャを再作成しようとしました)を試しましたが、期待どおりに正しく失敗しました。 Test = …
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.