【python】 객체 지향 프로그래밍 기초 vol.2 ~ 객체와 클래스 ~
수업
객체 지향에서 가장 기본적인 구조로, 관리 대상이 되는 정보(변수)와 행동(함수)을 정의한 템플릿입니다.
클래스의 기능으로서, 「캡슐화」와 「인스턴스(오브젝트의 생성)」가 있다.
캡슐화
변수와 함수를 정리한 다음 외부에 공개하는 정보를 제한하는 기능
여러 변수와 함수를 하나의 클래스로 결합하여 프로그램을 정리하고 정리할 수 있습니다.
예: 체중과 키를 전달하면 BMI와 적정 체중을 구하는 함수
proper = 22
def cal_bmi(weight, height):
return weight / height ** 2
def cal_proper_weight(height):
return height ** 2 * proper
proper이라는 글로벌 변수가 사용되고 있다.
클래스를 사용하면 다음과 같습니다.
class Calculation:
proper = 22
def bmi(self, weight, height):
return weight / height ** 2
def proper_weight(self, height):
return height ** 2 * Calculation.proper
변수와 함수를 결합할 수 있다.
클래스가 가지는 변수를 클래스 변수(속성), 클래스가 가지는 함수를 메소드라는 이름으로 부른다
위의 예라고 Calculation 클래스는 클래스 변수 proper와 bmi 메소드, proper_weight 메소드를 가지는 클래스라고 할 수 있다.
클래스 정의
수업을 만드는 이미지
이 예에서는, 좌기로 표현되고 있는 것을 추상화해 클래스로서 정의하고 있다. 공통된 속성을 정리하여 그룹화하고 그 그룹핑에 이름을 붙인다.
수업을 만드는 방법
class
키워드 뒤에 클래스 이름을 쓰고 오른쪽에 콜론 (:)을 붙입니다 class Player:
name = ''
position = ''
attack = 0
defense = 0
technique = 0
skill = ''
객체를 만드는 구문
クラス名()
로 객체를 만들 수 있습니다.christefan = Player()
christefan.name = 'クリステファン・ローディ'
christefan.position = 'FW'
christefan.attack = 409
christefan.defense = 193
christefan.technique = 395
christefan.skill = '天衣無縫'
print(christefan.name, christefan.position, christefan.attack, christefan.skill)
delby = Player()
delby.name = 'デルビー・ベルコム'
delby.position = 'OMF'
delby.attack = 326
delby.defense = 259
delby.technique = 368
delby.skill = '銀河の象徴'
실행 결과
クリステファン・ローディ FW 409 天衣無縫
객체와 클래스
객체는 클래스를 기반으로 만들어졌으며 파이썬의 모든 값은 객체입니다. 클래스는 객체를 만드는 설계도로 객체는 클래스에서 만든다.
클래스의 종류를 나타내기 위해서(type)이라는 단어를 사용한다. 예를 들어, 문자열의 클래스 str은 str 형으로, 정수의 클래스 int는 int 형이된다.
클래스도 오브젝트이며, 작성한
Player
또한 오브젝트이다. 클래스라고 하는 오브젝트의 형태(type)는 type(형)으로, type(Player)
는, type
가 된다.type
를 사용하면 클래스도 만들 수 있습니다. 이 클래스는 class
로 작성한 것과 같은 객체로, type
클래스의 객체이다.Player = type('Player')
christefan.name = 'クリステファン・ローディ'
christefan.position = 'FW'
christefan.attack = 409
christefan.defense = 193
christefan.technique = 395
christefan.skill = '天衣無縫'
print(christefan.name, christefan.position, christefan.attack, christefan.skill)
print(type(Player))
실행 결과
クリステファン・ローディ FW 409 天衣無縫
<class 'type'>
클래스 (class) : 관리되는 정보와 행동을 정의하는 템플릿.
인스턴스 (instance) : 클래스의 모든 정보를 상속받은 객체입니다.
Reference
이 문제에 관하여(【python】 객체 지향 프로그래밍 기초 vol.2 ~ 객체와 클래스 ~), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/satoichi/items/b9e88d3884ba7d22d7e5텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)