OOP: Class and Instances

1 minute read

Types of Programming Language

  1. Object Oriented Programming
  2. Functional Programming

Structures of Python

  • Class
    • Attribute
    • Method
      • Variable
  • Module / File compiled in Python code
  • Object / number, string, function etc. all points
  • Function used in method / class function, __init __() is also one of the methods
  • Objects (processing functions etc.) created in instance / class

クラス インスタンス 属性: アトリビュート 引数: アーギュメント コンストラクタ スタティックメソッド

Code for OOP

# クラス
class Human(object):
  # クラス変数
  language = "English"
  num_of_humans = 0
  # コンストラクタ
  def __init__(self, sex, age, nationality):
    # インスタンス変数、属性: アトリビュート
    self.sex = sex
    self.age = age
    self.nationality = nationality

    Human.num_of_humans += 1

  # インスタンスメソッド1:インスタンス変数の出力
  def sex_identifier(self):
    return "I am {}.".format(self.sex)

  # インスタンスメソッド2:インスタンス変数の更新
  def generation_converter(self):
    self.age = round(int(self.age) * 0.1) * 10

  # クラスメソッド:クラスがインスタンス化されるたびに呼び出される関数
  @classmethod
  def language_learner(cls, lang):
    return cls.language = lang
  # クラスメソッドによる新たなインスタンスの生成
  @classmethod
  def from_string(cls, human_str):
    sex, age, nationality = human_str.split("-")
    cls(sex, age, nationality)

 # 静的メソッドは毎回同じ結果を出力したいときに使う
  @staticmethod
  def hello():
    print ("Hello")

# インスタンス化    
Akira = Human("male", 25, "Japan")
Vivec = Human("male", 22, "India")
Selvina = Human("female", 25, "France")

print(Akira.age) # 25
print(Akira.language) # "English"

print(Akira.sex_identifier()) # "male"

print(Akira.__dict__) # {インスタンス属性}
print(Human.__dict__) # {インスタンス属性+クラス属性}
# クラス変数のインスタンス化
Akira.language = "French"
#  クラス変数も呼び出せるようになる
print(Akira.__dict__) # {インスタンス属性+クラス属性}

# クラスメソッド
Human.language_learner(lang="Japanese")
print(Akira.language) # "Japanese"

# 新しいインスタンスの生成
human_str1 = "female-40-Brazil"
Maria = Human.from_string(human_str1)
print(Maria.nationality) # "Brazil"

# staticmethod
print(Akira.hello()) # "Hello"

References

Updated:

Leave a Comment