일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 |
- 스타벅스후기
- 저칼로리샌드의치
- 두유라떼
- 스타벅스커피
- 스타벅스저칼로리
- 빠바샐러드
- 스벅라떼
- 스타벅스
- 내돈내산
- 솔직리뷰
- 샌드위치후기
- 스타벅스가격
- 스타벅스칼로리
- 스타벅스신메뉴
- 스타벅스다이어트
- 스타벅스점심
- 스벅커피
- 저칼로리스타벅스
- qh
- 엘리후기 #내돈내산 #솔직후기
- 샐러드후기
- R
- 스벅
- 파리바게트다이어트
- 스타벅스샌드위치
- 스타벅스리뷰
- 파리바게트샐러드
- 파리바게트
- 부산빵집
- 스타벅스런치
- Today
- Total
엘리
파이썬_클래스,메소드_나도코딩 본문
후.. 오늘 내용 어렵네?
그런데.. 재밌땅 ><
#나도코딩 님 넘 잘가르쳐 주신당..
#클래스 #붕어빵틀이라 생각하면 좋다 하나의 틀이다! 연관있는 변수와 함수의 집합이다!
#마린: 공격 유닌, 군인, 총을 쓸 수 있음
name = "마린"
hp = 40 #유닛의 체력
damage = 5 #공격력
print("{} 유닛이 생성되었습니다".format(name))
print("체력 {0}, 공격력 {1}\n".format(hp,damage))
#탱크
tank_name="탱크"
tank_hp=150
tank_damage=35
print("{} 유닛이 생성되었습니다".format(tank_name))
print("체력 {0}, 공격력 {1}\n".format(tank_hp,tank_damage))
def attack(name,location,damage):
print("{0}:{1} 방향으로 적군을 공격 합니다. [공격력{2}]".format(name,location,damage))
attack(name,"1시",damage)
attack(tank_name,"1시",tank_damage)
class Unit:
def __init__(self,name,hp,damage):
self.name=name
self.hp=hp
self.damage=damage
print("{0} 유닛이 생성되었습니다.".format(self.name))
print("체력 {0},공격력{1}".format(self.hp,self.damage))
#같은 클래스로 다른 유닛을 만들수 있다 :) 우왕...ㅎㅎ 넘 좋다
marine1=Unit("마린", 40,5) #객체!
marine2=Unit("마린", 40,5) #클래스로부터 만들어지는 것 유닛클래스의 인스턴스
tank=Unit("마린", 410,5)
#__init___ : 생성자 객체가 만들어 질때 자동으로 호출되는 것!
#멤버 변수 : 클래스 내에서 정의된 변수
#레이스: 공중유닛, 비행기, 클로킹(상대방에게 보이지 않음)
wraith1=Unit("레이스",80,5)
print("유닛 이름: {0}, 공격력 : {1}".format(wraith1.name,wraith1.damage)) #점으로 멤버변수에 접근 가능 함
#마인드 컨트롤: 상대방 유닛을 내 것으로 만드는 것(빼앗음)
wraith2=Unit("레이스",80,5)
wraith2.clocking=True
if wraith2.clocking ==True:
print("{0} 는 현재 클로킹 상태 입니다.".format(wraith2.name)) #클로킹 변수는 없다 (외부에서 추가로 할당)
#객체에 추가로 변수를 외부에서 만들어서 쓸수 있다. #확장한 객체에서만 적용된다! #다시한번 봐야 할꺼 같다
#메소드
#공격유닛 #클래스 내에서 메소드 앞에는 self 를 적어준다. 자기자신의 변수에 접근 가능함
class Attackunit:
def __init__(self,name,hp,damage):
self.name=name #전달받은 인자를 쓴다 (셀프가 없다면)
self.hp=hp
self.damage=damage
def attack(self,location):
print("{0}:{1}방향으로 적군을 공격 합니다.공격력{2} ".format(self.name,location,self.damage))
def damaged(self,damage):
print("{0}:{1} 데미지를 입었습니다.".format(self.name,damage))
self.hp-=damage
print("{0}: 현재 체력은 {1} 입니다".format(self.name,self.hp))
if self.hp<=0:
print("{0}: 파괴되었습니다".format(self.name))
#파이어벳: 공격 유닛, 화염 방사기
firebat1=Attackunit("파이어벳",50,16)
firebat1.attack("5시")
#공격 2번 받는다고 가정
firebat1.damaged(25)
firebat1.damaged(25)
메소드 부분이 이해가 되지 않아서 다시한번 찾아 봤다
추가 설명. 좀 더 자주 봐야 할 주제 인거 같다 *_* 개인적으로 메소드가 함수랑 같은 의미 인거 같은데,
어떤점이 다른지 정확히 파악이 안된다 일 마치고 한번 찾아봐야겠다!
#메소드를 어택과 데미지를 만들어서 정의 한거임 ㅎㅎㅎ 음.. 어렵군
#함수와 메소드는 이름뒤에 항상 소괄호()가 붙고
#함수는 반복되는 코드,기능,행위들을 쉽게 관리하기 위해 선언하여 사용한다.
#메소드를 사용하는 이유
#반복되는 기능, 코드를 쉽게 관리하고, 재사용하기 위함 그리고 소스코드를 간결화 하고 가독성을 위해 사용됨
#메소드를 사용해야 나중에 분업이 가능하다.
'프로그래밍 공부 일지 > 파이썬 공부' 카테고리의 다른 글
오늘의 궁금증) f 문자열(f-string) 포매팅 (0) | 2021.08.08 |
---|---|
파이썬_pickle_with_나도코딩 (0) | 2021.07.28 |
파이썬_파일 입출력_나도코딩님 강의 (0) | 2021.07.28 |
파이썬_나도코딩_표준입출력 (0) | 2021.07.27 |
파이썬 공부 _ 나도 코딩_ 함수 퀴즈 (0) | 2021.07.26 |