λͺ λ¬ μ μ νμ΄μ¬ ν΄λμ€λ₯Ό μ 리νμ§λ§ κ·Έλλ³΄λ€ μ΄ν΄μ νμ΄ λ λμ΄μ‘κ³ μ€λͺ λ λ μμΈνκ² ν μ μμ΄μ ν΄λ μ€μ λν΄μ λ€μ μ 리νλ€.
class Idol_member(object):
def __init__(self, name, group, gender, age, agency):
self._name = name
self._group = group
self._gender = gender
self._age = age
self._agency = agency
def __str__(self):
return f'μ΄λ¦: {self._name}'
def __repr__(self):
return f'κ·Έλ£Ήλͺ
: {self._group}'
νμ΄μ¬μμ ν΄λμ€λ₯Ό μμ±νλ©΄ objectλ₯Ό μλμΌλ‘ μμνλ€.
__init__
λ©μλλ‘ μΈμ€ν΄μ€λ₯Ό μμ±ν μ μλ€.
- ex.
idol_member1 = Idol_member('μμ°λ―Ό', 'μμ', 'λ¨μ', 32, 'SMμν°ν μΈλ¨ΌνΈ')
idol_member1λ³μμ Idol_memberν΄λμ€μ μΈμλ₯Ό λ£μ΄μ μΈμ€ν΄μ€λ₯Ό μμ±νλ€.
μμ±ν μΈμ€ν΄μ€λ₯Ό νλ¦°νΈν΄λ³΄μ
print(idol_member1)
-> μ΄λ¦: μμ°λ―Ό
__str__
λ©μλλ₯Ό ꡬννμ§ μμΌλ©΄
<__main__.Idol_member object at 0x7f8ba8110fd0>
-> κ°μ²΄κ° 리ν΄λλ€.
__str__
λ©μλλ ν΄λμ€λ₯Ό μ‘°ν ν λ νμ λλ μ 보λ₯Ό ꡬννλ€.
μ₯κ³ λͺ¨λΈμμ μ¬μ© νλ©΄ λͺ¨λΈ κ°μ²΄ μ΄λ¦ λμ ννν κ²μ ꡬν ν μ μλ€.
__repr__
λ©μλλ __str__
λ©μλκ° μμΌλ©΄ νΈμΆλλ€.repr(idol_member)
μ΄λ°μμΌλ‘ νΈμΆ ν μλ μλ€. class Idol_member(object):
"""
Idol_member class
Aythor : sdk
Date : 210705
"""
# ν΄λμ€ λ³μ
member_count = 0
def __init__(self, name, group, gender, age, agency, song=None):
# μΈμ€ν΄μ€ λ³μ
self._name = name
self._group = group
self._gender = gender
self._age = age
self._agency = agency
self._song = song
Idol_member.member_count +=1
def __str__(self):
return f'str: {self._name}'
def __repr__(self):
return f'repr : {self._group}'
def detail_info(self):
print(f'Current Id: {id(self)}')
print(f'Member Detail Info : {self._name} {self._group} {self._gender}')
def __del__(self):
Idol_member.member_count -= 1
λ©€λ²μ μ΄λ¦κ³Ό κ·Έλ£Ήλͺ μ±λ³ λμ΄ μμμ¬ λ Έλλ₯Ό μΈμλ‘ λ°λ ν΄λμ€μ΄λ€.
ν΄λμ€ λ³μ membercountλ₯Ό μ μΈνλ€.
μΈμ€ν΄μ€λ₯Ό μμ±ν΄μ£Όμ
member1 = Idol_member('μΉ΄μ΄', 'μμ', 'male', 28, 'SMμν°ν
μΈλ¨ΌνΈ')
member2 = Idol_member('μ¬κΈ°', 'λ λ벨벳', 'female', 28, 'SMμν°ν
μΈλ¨ΌνΈ', 'psycho')
member1.detail_info()
# Current Id: 140248082366416
# Member Detail Info : μΉ΄μ΄ μμ male
member2.detail_info()
# Current Id: 140248082366368
# Member Detail Info : μ¬κΈ° λ λ벨벳 female
Idol_member.detail_info()
-> μλ¬
ν΄λμ€μλ€κ° λ°λ‘ λ©μλλ₯Ό νΈμΆνλ©΄ μλ¬κ°λλ€. μ°Έμ‘°ν κ°μ²΄κ° μκΈ° λλ¬Έμ΄λ€.
μ½κ² λ§ν΄ Idol_memberλ ν΄λμ€λ₯Ό μ°μ΄λ΄λ νμ΄μ§ μ°μ΄λΈ κ²°κ³Όλ¬Όμ΄ μλκΈ° λλ¬Έμ΄λ€.
κ·Έλμ selfμ μλ―Έλ κ°μ²΄μ μΈμ€ν΄μ€ κ·Έ μ체λ€.
μΈμ€ν΄μ€λ³μμ μ κ·Ό
member2._name = 'μ¬κΈ°2
μ΄λ κ² μΈμ€ν΄μ€ λ³μμ λ°λ‘ μ κ·Όν μ μμ§λ§ κΆμ₯λμ§λ μλ λ°©λ²μ΄λ€.
print(member2._name) -> μ¬κΈ°2
print(member1.member_count) -> 2
print(member2.member_count) -> 2
print(Idol_member.member_count) -> 2
ν΄λμ€ λ³μλ λͺ¨λ μΈμ€ν΄μ€μμ μ κ·Όν μ μλ€.
ν΄λμ€ νμμλ μ κ·Όν μ μλ€.
class exo_member(object):
'''
Idol_member
Author : sdk
Date : 210705
'''
#class λ³μ
korea_album_count = 21
def __init__(self, realname, nickname, age, ability, solo_album=0):
self._realname = realname
self._nickname = nickname
self._age = age
self._ability = ability
self._solo_album = solo_album
# instance method
def names(self):
return f'{self._realname} : {self._nickname}'
def detail_info(self):
return f'Member Detail Info : {self._realname} {self._nickname} {self._age} λ₯λ ₯ : {self._ability} μλ‘μ¨λ² κ°μ: {self._solo_album}'
def get_solo_album_count(self):
return f'{self._nickname}μ μλ‘μ¨λ² κ°μ : {self._solo_album}'
def get_all_album_count(self):
return f'{self._nickname}μ μλ‘μ¨λ² κ°μ + κ·Έλ£Ή μλ² κ°μ : {self._solo_album + exo_member.korea_album_count}'
def __str__(self):
return f'{self.detail_info()}'
exoλ©€λ²λ€μ μ 보λ₯Ό λ°λ ν΄λμ€λ₯Ό μμ±νλ€.
ν΄λμ€ λ³μ korea_album_count
λ 2020λ
κΉμ§ μμκ° νκ΅μμ λ°λ§€ν μ¨λ²μ μλμ λνλΈλ€.
κ·ΈμΈ μ΄λ¦μ μΆλ ₯νλ names, μμΈν μ 보λ₯Ό μΆλ ₯νλ detail_info λ©€λ²λ³ μλ‘μ¨λ² λ°λ§€μλ₯Ό μΆλ ₯νλ get_solo_album_countν¨μλ±μ μΈμ€ν΄μ€ λ©μλλΌκ³ λΆλ₯Έλ€.
ν΄λμ€ λ³μμ μ κ·Όνλ €λ©΄
exo_member.korea_album_count = 22
μ΄λ κ² μ κ·Όν μ μμ§λ§ ν΄λμ€ λ³μμ μ§μ μ κ·Όνλ κ²μ κΆμ₯λμ§ μλλ€.(pep8)
μ΄λ¬ν λ¬Έμ λ₯Ό ν΄κ²°νκΈ° μν΄ ν΄λμ€ λ©μλλ₯Ό μΈ μ μλ€.
κΈ°μ‘΄ exo_memberν΄λμ€μ μλ μ½λλ₯Ό μΆκ° ν΄μ€λ€.
@classmethod
def raise_album_count(cls, count):
if count < 1:
print('1 μ΄μμ μΆκ°ν΄μ£ΌμΈμ.')
return
cls.korea_album_count += count
print('μ¨λ² κ°μ μΆκ°κ° λ°μλμ΅λλ€.')
μ΄λ κ² νλ©΄ ν΄λμ€μμλ μ κ·Όμ΄ κ°λ₯νλ€.
μΈμλ‘ λ°λ clsλ ν΄λμ€ μ체 μ¦ exo_member
μ΄λ€.
2021λ
κΈ°μ€μΌλ‘ μμμ νκ΅ μ¨λ² λ°λ§€ κ°μλ 22κ°μ΄λ―λ‘ 1κ°λ₯Ό μΆκ°ν΄λ³΄μ.
exo_member.raise_album_count(1)
λ³κ²½μ¬νμ μΆλ ₯ν΄λ³΄μ
print(member1.get_all_album_count())
# -> μμ°λ―Όμ μλ‘μ¨λ² κ°μ + κ·Έλ£Ή μλ² κ°μ : 22
@classmethod
def add_member(cls, realname, nickname, age, ability, solo_album=0):
return cls(realname, nickname, age, ability, solo_album)
member1 = exo_member('κΉλ―Όμ', 'μμ°λ―Ό',32, 'κ²°λΉ')
ember4 = exo_member.add_member('λκ²½μ', 'λμ€', 30, 'ν')
member5 = exo_member.add_member('κΉμ’
μΈ', 'μΉ΄μ΄', 28, 'μκ°μ΄λ', 1)
def is_solo(inst):
if inst._solo_album > 0:
return f'{inst._nickname}μ μλ‘μ¨λ²μ {inst._solo_album}μ₯ λ°λ§€ νμ΅λλ€.'
return f'{inst._nickname}μ μλ‘μ¨λ²μ λ°λ§€νμ§ μμμ΅λλ€.'
ν΄λμ€ λ°μμ μ μΈν΄μ μΈ μ μλ€.
μΆλ ₯ ν΄λ³΄λ©΄
print(is_solo(member1))
# -> μμ°λ―Όμ μλ‘μ¨λ²μ λ°λ§€νμ§ μμμ΅λλ€.
μ΄λ κ² μ¨λ λμ§λ§ ν΄λμ€μ μ°κ²°λμ΄ μλ λλμ΄λ ν΄λμ€μμ μ§μ΄ λ£μ΄λ³΄μ.
@staticmethod
def is_solo(inst):
if inst._solo_album > 0:
return f'{inst._nickname}μ μλ‘μ¨λ²μ {inst._solo_album}μ₯ λ°λ§€ νμ΅λλ€.'
return f'{inst._nickname}μ μλ‘μ¨λ²μ λ°λ§€νμ§ μμμ΅λλ€.'
print(exo_member.is_solo(member3))
-> λ°±νμ μλ‘μ¨λ²μ 4μ₯ λ°λ§€ νμ΅λλ€.
print(member4.is_solo(member4))
-> λμ€μ μλ‘μ¨λ²μ λ°λ§€νμ§ μμμ΅λλ€.