演習課題「メソッドの実行2」
右側のコードエリアには、クラス PersonalComputer とインスタンス pc が用意されています。
しかし、メソッド ram_expansion
を呼び出す際エラーが発生しています。
正しく出力するよう修正してください。
期待する出力値
24
※有料会員になるとこの動画をご利用いただけます
詳しい説明を読む
#11:self の意味
このチャプターでは、メソッドを定義するときに第 1 引数に用意していた self の意味について学習しましょう。
- self はインスタンスを示す
- たとえば
kirishima.add_age(4)
というコードが実行されると、add_age メソッドの仮引数 self には、インスタンス kirishima が代入される
class Person:
def __init__(self, name, age):
self.name = name
self.age = age
def add_age(self, year):
self.age += year
kirishima = Person("Kirishima", 15)
kirishima.add_age(4)
- add_age メソッドの仮引数 self にはインスタンス kirishima が代入される
- add_age メソッドの仮引数 year には整数 4 が代入される
- add_age メソッドの処理の
self.age ...
は、「インスタンス kirishima のメンバ変数 age の値を...」といったコードだとわかる
- 仮引数 self に明示的に値を渡そうとすると、エラーが発生する
class Person:
def __init__(self, name, age):
self.name = name
self.age = age
def add_age(self, year):
self.age += year
kirishima = Person("Kirishima", 15)
kirishima.add_age(kirishima, 4)
ログインすると採点できます
コードの実行