Pythonによるオブジェクト指向プログラミング入門
George Boorman
Curriculum Manager, DataCamp
class Employee:
def __init__(self, name, salary):
self.name = name
self.salary = salary
emp1 = Employee("Teo Mille", 50000)
emp2 = Employee("Marta Popov", 65000)
name と salary は各オブジェクト固有self は値をオブジェクトに割り当てる
class 本体で「クラス属性」を定義
class Employee: # クラス属性を定義 # self. は不要 MIN_SALARY = 30000def __init__(self, name, salary): self.name = name # クラス名で # クラス属性にアクセス if salary >= Employee.MIN_SALARY: self.salary = salaryelse: self.salary = Employee.MIN_SALARY
MIN_SALARY は全インスタンスで共有self は使わないClassName.ATTR_NAME を使用class Employee: # クラス属性を定義 MIN_SALARY = 30000def __init__(self, name, salary): self.name = name # クラス名で # クラス属性にアクセス if salary >= Employee.MIN_SALARY: self.salary = salary else: self.salary = Employee.MIN_SALARY
emp1 = Employee("John", 40000)
print(emp1.MIN_SALARY)
30000
emp2 = Employee("Jane", 60000)
print(emp2.MIN_SALARY)
30000
emp1 = Employee("John", 40000) emp2 = Employee("Jane", 60000)# emp1 の MIN_SALARY を更新 emp1.MIN_SALARY = 50000# 両者の MIN_SALARY を出力 print(emp1.MIN_SALARY) print(emp2.MIN_SALARY)
50000
30000
MIN_SALARY はクラス定義で作成
MIN_SALARY 更新はクラス定義の値に影響しない
Database クラスの host、port)Pythonによるオブジェクト指向プログラミング入門