Python 模擬試験

Pythonデータ分析 模擬試験 第3回 問6・2章2節 Pythonの基礎(クラスとモジュール)

メソッドチェーン

次のコードを実行したときの出力として、正しいものを1つ選べ。

class A:
    def __init__(self):
        self.n = 0
    def inc(self):
        self.n += 1
        return self
print(A().inc().inc().n)
  1. A

    2

  2. B

    1

  3. C

    0

  4. D

    AttributeError が発生する。

正解と解説を見る

正解:A

メソッドが self を返すと、obj.a().b().c() のようにつなげて書ける。pandas の操作でもよく使われる書き方。

順実行する行実行後の変数
1`class A:`—
2└ `def __init__(self):`—
3└ `def inc(self):`—
4`print(A().inc().inc().n)`—
5└ `self.n = 0`self = A(vars={'n': 0})
6└ `self.n += 1`self = A(vars={'n': 1})
7└ `return self`self = A(vars={'n': 1})
8└ `self.n += 1`self = A(vars={'n': 2})
9└ `return self`self = A(vars={'n': 2})
結果実際の出力2

学習のポイント:メソッドチェーンは、処理の流れが見やすくなる。

この問題を演習で解く →

問題一覧へ

このサイトの問題は、各試験の公式に示された出題範囲に沿って作ったオリジナルの模擬問題です。本試験の問題ではありません。一般社団法人Pythonエンジニア育成推進協会の公式サービスではありません。