タグ付けされた質問 「type-hinting」

型ヒントは、関数の引数を特定のオブジェクトにバインドするか、強く型付けします。


2
タイピングの定義の違い。Dictとdict?
Python3.5で型ヒントを使用して練習しています。私の同僚の1人が使用していますtyping.Dict: import typing def change_bandwidths(new_bandwidths: typing.Dict, user_id: int, user_name: str) -> bool: print(new_bandwidths, user_id, user_name) return False def my_change_bandwidths(new_bandwidths: dict, user_id: int, user_name: str) ->bool: print(new_bandwidths, user_id, user_name) return True def main(): my_id, my_name = 23, "Tiras" simple_dict = {"Hello": "Moon"} change_bandwidths(simple_dict, my_id, my_name) new_dict = {"new": "energy source"} my_change_bandwidths(new_dict, …

1
ユーザー定義クラスの型ヒント
決定的な答えを見つけることができなかったようです。関数の型ヒントを実行したいのですが、型は、自分で定義したカスタムクラスで、それを呼び出しますCustomClass()。 そして、いくつかの関数でそれを呼び出すとしましょう。FuncA(arg)私はという引数を1つ持っていますarg。ヒントを入力する正しい方法はFuncA次のとおりです。 def FuncA(arg: CustomClass): またはそれは: def FuncA(Arg:Type[CustomClass]):?

4
forループで型に注釈を付けるにはどうすればよいですか
for-loop内の変数のタイプに注釈を付けたい。私はこれを試しました: for i: int in range(5): pass しかし、明らかにそれは機能しませんでした。 私が期待しているのは、PyCharm2016.3.2でオートコンプリートが機能していることです。このような事前注釈: i: int for i in range(5): pass 助けにはなりません。 PSプレアノテーションはPyCharm> = 2017.1で機能します

1
PHPタイプのヒントで「キャッチ可能な致命的なエラー」をキャッチするにはどうすればよいですか?
私のクラスの1つにPHP5のタイプヒントを実装しようとしています。 class ClassA { public function method_a (ClassB $b) {} } class ClassB {} class ClassWrong{} 正しい使い方: $a = new ClassA; $a->method_a(new ClassB); エラーの生成: $a = new ClassA; $a->method_a(new ClassWrong); キャッチ可能な致命的なエラー:ClassA :: method_a()に渡される引数1はClassBのインスタンスでなければなりません。指定されたClassWrongのインスタンス... そのエラーをキャッチすることは可能ですか(「キャッチ可能」と表示されているため)?はいの場合、どうやって?

5
PHP 7インターフェース、戻り値の型のヒントと自己
更新:PHP 7.4は、この質問で提起された主要な問題に対処する共分散と反変性をサポートするようになりました。 PHP 7で戻り値の型のヒントを使用する際に問題が発生しました。私の理解では、ヒント: selfとは、実装クラスがそれ自体を返すことを意図していることを意味します。したがって: self、インターフェイスでそれを示すために使用しましたが、実際にインターフェイスを実装しようとすると、互換性エラーが発生しました。 以下は、私が遭遇した問題の簡単なデモンストレーションです。 interface iFoo { public function bar (string $baz) : self; } class Foo implements iFoo { public function bar (string $baz) : self { echo $baz . PHP_EOL; return $this; } } (new Foo ()) -> bar ("Fred") -> bar ("Wilma") -> bar …

2
オプションタイプのヒントはどのように使用すればよいですか?
Optionalタイプヒントの使い方を理解しようとしています。PEP-484、私が使用することができます知っているOptionalためにdef test(a: int = None)どちらかとdef test(a: Union[int, None])かdef test(a: Optional[int])。 しかし、次の例はどうですか? def test(a : dict = None): #print(a) ==> {'a': 1234} #or #print(a) ==> None def test(a : list = None): #print(a) ==> [1,2,3,4, 'a', 'b'] #or #print(a) ==> None Optional[type]と同じ意味のように思われる場合Union[type, None]、なぜ私Optional[]はまったく使用する必要がありますか?

2
Python 3.6の変数アノテーションとは何ですか?
Python3.6がリリースされようとしています。PEP 494-Python 3.6のリリーススケジュールには12月末が記載されているため、Python 3.6の新機能を調べて、変数の注釈に記載されていることを確認しました。 PEP 484は、関数パラメーターの型注釈、別名型ヒントの標準を導入しました。このPEPは、クラス変数やインスタンス変数などの変数のタイプに注釈を付けるための構文をPythonに追加します。 primes: List[int] = [] captain: str # Note: no initial value! class Starship: stats: Dict[str, int] = {} 関数アノテーションの場合と同様に、Pythonインタープリターは変数アノテーションに特定の意味を付加せず__annotations__、クラスまたはモジュールの特別な属性にのみ格納します。静的に型付けされた言語での変数宣言とは対照的に、注釈構文の目標は、抽象構文ツリーと__annotations__属性を介してサードパーティのツールとライブラリの構造化型メタデータを指定する簡単な方法を提供することです。 したがって、私が読んだものから、それらはPython 3.5からの型ヒントの一部であり、Python3.5の型ヒントとはで説明されています。 私はcaptain: strとのclass Starship例に従いますが、最後の例についてはよくわかりません:どのようにprimes: List[int] = []説明しますか?整数のみを許可する空のリストを定義していますか?

2
JetBrains WebIDE:PHP変数タイプのヒント?
変数に何らかの型があることをWebIDEに示唆する方法はありますか?オブジェクトの配列を繰り返す必要がありますが、オートコンプリートは利用できません。これはZendStudioで役立ちます。 /* @var ClassName $object */ JetBrainsには、オブジェクトの配列を宣言する機能があることを知っています。 /** * @return ClassName[] */ ただし、これは関数の戻り値の型でのみ機能します。

4
PHP 7のプロパティのタイプヒント?
php 7はクラスプロパティの型ヒントをサポートしていますか? つまり、セッター/ゲッターだけでなく、プロパティ自体にも当てはまります。 何かのようなもの: class Foo { /** * * @var Bar */ public $bar : Bar; } $fooInstance = new Foo(); $fooInstance->bar = new NotBar(); //Error

2
「with」ステートメントは型ヒントをサポートしていますか?
with構文で定義された変数の型ヒントを定義できますか? with example() as x: print(x) 上記のヒントを入力して、それxがstr(例として)であると言います。 私が見つけた唯一の回避策は中間変数を使用することですが、これはハッキーな感じがします。 with example() as x: y: str = x print(y) 入力ドキュメントに例が見つかりません。

2
プロパティタイプのヒントを導入すると、「初期化前に型付きプロパティにアクセスしてはならない」というエラーが突然表示されるのはなぜですか?
次のように、新しく導入されたプロパティタイプのヒントを利用するようにクラス定義を更新しました。 class Foo { private int $id; private ?string $val; private DateTimeInterface $createdAt; private ?DateTimeInterface $updatedAt; public function __construct(int $id) { $this->id = $id; } public function getId(): int { return $this->id; } public function getVal(): ?string { return $this->val; } public function getCreatedAt(): ?DateTimeInterface { return $this->createdAt; } public …
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.