class란 해당 정보를 담고 이후 그 정보를 출력하는 간단한 구조
class example))
class person:
pass<- (잠깐 대기라는 뜻)
alice = Person()
class Person:
def __init__(self, name, gender, age):
self.name = name
self.gender = gender
self.age = age
여기서 그냥 name 와 self.name 다른점
만약 name을 self 없이 사용하면, self.name이라는 속성을 정의하지 않기 때문에, 인스턴스에서 그 속성을 사용할 수 없게 돼. 즉, name이라는 변수는 display() 메소드 안에서만 존재하고, 인스턴스 외부에서는 접근할 수 없다.
- self.name: 클래스 인스턴스의 속성을 정의하여, 해당 객체가 가지고 있는 데이터로 저장.
- name: 생성자 메소드에서 전달받은 매개변수로, 객체 외부에서는 접근할 수 없음
self를 사용하면 각 객체는 자신의 고유한 속성을 가질 수 있다!!
def display(self):
print(f"이름: {self.name}, 성별: {self.gender}")
print(f"나이: {self.age}
if self.age >= 18:
print(f:"안녕하세요, {self.name}! 성인이시군요!")
else:
print (f:"안녕하세요, {self.name}! 학생이시군요!")
name_input = input("이름을 입력하세요: ")
age_input = (int(input("이름을 입력하세요: "))
while True:
gender_input = input("성별을 입력하세요 (남/여):"lower()
if gender_input in ['male', 'femal']:
break
else:
print("잘못 입력 했다. "남" 또는 "여"라고 입력해주세요!!!.")
person = Person(name_input, gender_input, age_input)
person.display() 출력
요약하자면 성별 나이 이름을 입력하는 class를 만들어 보았다 그리고 성별을 다르게 입력하면 제대로 입력하라고 하는 경고문도 만들어 보았다.
다시 한번 모아서 정리하자
class Person:
# 생성자 정의: name, gender, age를 초기화
def __init__(self, name, gender, age):
self.name = name
self.gender = gender
self.age = age
# display 함수: 이름과 성별은 같은 줄에, 나이는 다음 줄에 출력
def display(self):
print(f"이름: {self.name}, 성별: {self.gender}")
print(f"나이: {self.age}")
if self.age >= 18:
print(f"안녕하세요, {self.name}! 성인이시군요!")
else:
print(f"안녕하세요, {self.name}! 아직 미성년자이시군요!")
# 사용자 입력 받기
name_input = input("이름을 입력하세요: ")
age_input = int(input("나이를 입력하세요: "))
# 성별 입력 제한: male 또는 female만 허용
while True:
gender_input = input("성별을 입력하세요 (male/female): ").lower()
if gender_input in ['male', 'female']:
break
else:
print("잘못된 성별을 입력하셨습니다. 'male' 또는 'female'을 입력하세요.")
# 입력 받은 값으로 Person 객체 생성
person = Person(name_input, gender_input, age_input)
# 객체의 정보를 출력
person.display()
'Coding study > python' 카테고리의 다른 글
| 2024-10-10 list dictionary tuple function (0) | 2024.10.10 |
|---|---|
| 2024-10-09 Python 라이브러리로 데이터 분석하기 (1) | 2024.10.09 |
| 2024-10-08 (for문 개념) (0) | 2024.10.08 |
| 2024-10-08 (if,elif,else) (0) | 2024.10.08 |
| 2024-10-07 (1) | 2024.10.07 |