Pythonによるオブジェクト指向プログラミング入門
George Boorman
Curriculum Manager, DataCamp
selfself.___class MyClass: # クラス内の関数定義 # 最初の引数は self def my_method1(self, other_args...): # ここで処理def my_method2(self, my_attr): # 代入で属性を作成 self.my_attr = my_attr ...
__init__() はオブジェクト作成のたびに呼ばれる__methodname__ 構文により自動で呼ばれるclass Customer:
def __init__(self, name):
# .name 属性を作成し、name 引数を設定
self.name = name
print("The __init__ method was called")
# __init__ は自動的に呼ばれる
cust = Customer("Lara de Silva")
print(cust.name)
The __init__ method was called
Lara de Silva
class MyClass: def my_method1(self, attr1): self.attr1 = attr1 ... def my_method2(self, attr2): self.attr2 = attr2 ...obj = MyClass() # attr1 を作成 obj.my_method1(val1) # attr2 を作成 obj.my_method2(val2)
class MyClass: def __init__(self, attr1, attr2): self.attr1 = attr1 self.attr2 = attr2 ...# すべての属性を作成 obj = MyClass(val1, val2)
class Customer: # balance 引数を追加 def __init__(self, name, balance):self.name = name # balance 属性を追加 self.balance = balance print("The __init__ method was called")
# __init__ が呼ばれる
cust = Customer("Lara de Silva", 1000)
print(cust.name)
print(cust.balance)
The __init__ method was called
Lara de Silva
1000
class Customer:
# balance のデフォルト値を設定
def __init__(self, name, balance=0):
self.name = name
# 新しい属性を代入
self.balance = balance
print("The __init__ method was called")
# balance を明示しない cust = Customer("Lara de Silva")print(cust.name) # balance 属性は作成される print(cust.balance)
The __init__ method was called
Lara de Silva
0
__init__() で属性を初期化する__init__() で属性を初期化するクラスは CamelCase、関数と属性は lower_snake_case
__init__() で属性を初期化するクラスは CamelCase、関数と属性は lower_snake_case
self は self のままclass MyClass:
# 動くが推奨しない
def my_method(george, attr):
george.attr = attr
__init__() で属性を初期化するクラスは CamelCase、関数と属性は lower_snake_case
self は selfclass MyClass:
"""このクラスは何もしません"""
pass
Pythonによるオブジェクト指向プログラミング入門