[Python] Object, Class
# 객체 지향
△個人整理に用いる.class, object
quadrangleクラス
instance = class()
クラスには属性とメソッドがあります
オブジェクト向け構文(継承)
継承
抽象化(抽象):複数のクラスで繰り返されるプロパティ;メソッドをベースクラスとして作成する
継承(継承):基本クラスの汎用機能を継承し、他の部分のみを追加または変更します.
繰り返し使用可能なコードです.汎用機能では、基本クラスコードを変更するだけです.
親が2つ以上ある場合は、マルチ継承と呼ばれます.
class Car:
def __init__(self, name):
self.name = name
def get_info(self):
print(self.name)
class ElectronicCar(Car):
def get_info(self):
print(self.name , " Electronic")
class GasolineCar(Car):
def get_info(self):
print(self.name , " Gasoline")
test_car = ElectronicCar("pingping")
hello_car = GasolineCar("pingping")
test_car.get_info()
hello_car.get_info()
メソッドオーバーライド:オーバーライド、既存の機能を新しい機能として再定義
issubclass,isinstance→内蔵関数
Init:作成者
super
子クラスで親クラスのメソッドを呼び出す場合に使用します.
super().親クラス名のメソッド名
class Person:
def work(self):
print('work hard')
class Student(Person):
def work(self):
print('Study Hard')
def parttime(self):
super().work()
クラスのプロパティとメソッド
1.クラス変数とインスタンス変数(さらに属性を区別)
クラス変数:クラス定義のメソッド以外の変数
インスタンス変数:クラス定義でメソッドで使用する場合「self」.変数名(変数名など)
クラス変数、作成者、インスタンス変数、クラス変数アクセス、インスタンス変数アクセス、...
instance, static, class method
class Figure:
# 생성자 (Initializer)
def __init__(self, width, height):
self.width = width
self.height = height
# 메서드
def clac_area(self):
return self.width * self.height
# 정적 메서드 (Figure 에 너비와 높이가 같은 도형은 정사각형임을 알려주는 기능)
@staticmethod
def is_square(rect_width, rect_height):
if rect_width == rect_height:
print("square")
else:
print('Not square')
figure1 = Figure(2, 3)
figure1.is_square(5, 5)
Figure.is_square(4, 2)
class method:クラスで呼び出す
class Figure:
# 생성자 (Initializer)
def __init__(self, width, height):
self.width = width
self.height = height
# 메서드
def clac_area(self):
return self.width * self.height
# 클래스 메서드
@classmethod
def print_count(cls):
return cls.count
class Figure:
@classmethod
def set_name(cls, name):
cls.name = name
class Circle(Figure):
pass
# 범위가 classmechod는 해당 클래스 안이다. 그래서 Circle set_name을 호출하면 바뀌지 않음
# staticmethod : 아예 별개의 함수
# classmethod : 해당 클래스만을 범위로 한다.
Figure.set_name('Figure')
print(Figure.name, Circle.name)
Circle.set_name('Circle')
print(Figure.name, Circle.name)
Reference
この問題について([Python] Object, Class), 我々は、より多くの情報をここで見つけました https://velog.io/@pingping95/객체-지향-개념テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol