外部で定義された変数をglobalで関数内に取り込み操作します。
下記の例文は実際に動作しますがmypyが通りません。
python
1def uniq_id_generator() -> Callable[[], int]: 2 lock = Lock() 3 uuid = 0 4 def get_uuid() -> int: 5 global uuid 6 with lock: 7 uuid += 1 8 return uuid 9 return get_uuid 10 11 12def main(): 13 get_uuid = uniq_id_generator() 14 id1 = get_uuid() 15 id2 = get_uuid()
error
1test.py:7: error: Name 'uuid' is not defined 2test.py:8: error: Name 'uuid' is not defined
このようなエラーが出ます。構文としては簡単だし短いので# type: ignore
を付け加えてスキップしています。しかし、他に方法はあるのならば知りたいです。
何かわかる方は回答の方をよろしくお願いいたします。

回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/08/17 03:07