NamedTuple
次のコードを実行したときの出力として、正しいものを1つ選べ。
from typing import NamedTuple
class P(NamedTuple):
x: int
y: int = 0
print(P(1), P._fields)
- A
P(x=1, y=0) ('x', 'y') - B
(1, 0) ('x', 'y') - C
P(x=1, y=0) ['x', 'y'] - D
P(1) ()
正解と解説を見る
正解:A
typing.NamedTuple は、クラスの形式で型注釈つきの名前付きタプルを定義する。タプルなので、変更できず、軽量。
| 順 | 実行する行 | 実行後の変数 |
|---|---|---|
| 1 | `from typing import NamedTuple` | — |
| 2 | `class P(NamedTuple):` | — |
| 3 | └ `x: int` | — |
| 4 | └ `y: int = 0` | y = 0 |
| 5 | └ `class P(NamedTuple):` | — |
| 6 | └ `x: int` | — |
| 7 | └ `class P(NamedTuple):` | — |
| 8 | └ `y: int = 0` | — |
| 9 | └ `class P(NamedTuple):` | — |
| 10 | `print(P(1), P._fields)` | — |
| 結果 | 実際の出力 | P(x=1, y=0) ('x', 'y') |
- A
正しい。型注釈つきで、名前付きタプルを定義できる。
_fieldsはフィールド名のタプル。 - B
誤り。名前付きタプルの表示は、名前付き。
- C
誤り。
_fieldsはタプル。 - D
誤り。フィールドが定義されている。
このサイトの問題は、各試験の公式に示された出題範囲に沿って作ったオリジナルの模擬問題です。本試験の問題ではありません。一般社団法人Pythonエンジニア育成推進協会の公式サービスではありません。