Coding study/python

2024-10-08 (class OOP 공부)

rwg5565 2024. 10. 8. 16:32

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