Class
ν΄λμ€ κΈ°λ°μ κ°μ²΄ μ§ν₯ νλ‘κ·Έλλ° μΈμ΄λ ν΄λμ€λΌλ κ²μ κΈ°λ°μΌλ‘ κ°μ²΄λ₯Ό λ§λ€κ³ , κ·Έλ¬ν κ°μ²΄λ₯Ό μ°μ μΌλ‘ μκ°ν΄μ νλ‘κ·Έλλ°νλ κ²μ μ΄λ
μΌλ‘ μΌκ³ μλ€
ν΅μ¬ ν€μλ
κ°μ²΄ : μμ±μ κ°μ§ μ μλ λͺ¨λ κ²μ μλ―Έ
κ°μ²΄ μ§ν₯ νλ‘κ·Έλλ° μΈμ΄ : κ°μ²΄λ₯Ό κΈ°λ°μΌλ‘ νλ‘κ·Έλ¨μ λ§λλ νλ‘κ·Έλλ° μΈμ΄
μΆμν : 볡μ‘ν μλ£, λͺ¨λ, μμ€ν
λ±μΌλ‘λΆν° ν΅μ¬μ μΈ κ°λ
λλ κΈ°λ₯μ κ°μΆλ € λλ κ²
ν΄λμ€ : κ°μ²΄λ₯Ό μ½κ³ νΈλ¦¬νκ² μμ±νκΈ° μν΄ λ§λλ μ§ κ΅¬λ¬Έ
μΈμ€ν΄μ€ : ν΄λμ€λ₯Ό κΈ°λ°μΌλ‘ μμ±ν κ°μ²΄λ₯Ό μλ―Έ
μμ±μ : ν΄λμ€ μ΄λ¦κ³Ό κ°μ μΈμ€ν΄μ€
λ©μλ : ν΄λμ€κ° κ°μ§ ν¨μ
μΆμν
νλ‘κ·Έλ¨μμ νμν μμλ§μ μ¬μ©ν΄μ κ°μ²΄λ₯Ό νννλ κ²
볡μ‘ν μλ£, λͺ¨λ, μμ€ν
λ±μΌλ‘λΆν° ν΅μ¬μ μΈ κ°λ
λλ κΈ°λ₯μ κ°μΆλ € λλ κ²
students = [
{ "name": "μ€μΈμ±", "korean": 87, "math": 98, "english": 88, "science": 95 },
{ "name": "μ°νμ§", "korean": 92, "math": 98, "english": 96, "science": 98 },
{ "name": "ꡬμ§μ°", "korean": 76, "math": 96, "english": 94, "science": 90 },
{ "name": "λμ μ£Ό", "korean": 98, "math": 92, "english": 96, "science": 92 },
{ "name": "μ€μλ¦°", "korean": 95, "math": 98, "english": 98, "science": 98 },
{ "name": "μ€λͺ
μ", "korean": 64, "math": 88, "english": 92, "science": 92 }
]
print("μ΄λ¦", "μ΄μ ", "νκ· ", sep="\t")
for student in students:
score_sum = student["korean"] + student["math"] +\
student["english"] + student["science"]
score_average = score_sum / 4
print(student["name"], score_sum, score_average, sep="\t")
κ°μ²΄λ₯Ό λ§λλ ν¨μ (1)
def create_student(name, korean, math, english, science):
return {
"name": name,
"korean": korean,
"math": math,
"english": english,
"science": science
}
students = [
create_student("μ€μΈμ±", 87, 98, 88, 95),
create_student("μ°νμ§", 92, 98, 96, 98),
create_student("ꡬμ§μ°", 76, 96, 94, 90),
create_student("λμ μ£Ό", 98, 92, 96, 92),
create_student("μ€μλ¦°", 95, 98, 98, 98),
create_student("μ€λͺ
μ", 64, 88, 92, 92)
]
print("μ΄λ¦", "μ΄μ ", "νκ· ", sep="\t")
for student in students:
score_sum = student["korean"] + student["math"] +\
student["english"] + student["science"]
score_average = score_sum / 4
print(student["name"], score_sum, score_average, sep="\t")
κ°μ²΄λ₯Ό μ²λ¦¬νλ ν¨μ (2)
# λμ
λ리λ₯Ό 리ν΄νλ ν¨μλ₯Ό μ μΈν©λλ€.
def create_student(name, korean, math, english, science):
return {
"name": name,
"korean": korean,
"math": math,
"english": english,
"science": science
}
# νμμ μ²λ¦¬νλ ν¨μλ₯Ό μ μΈν©λλ€.
def student_get_sum(student):
return student["korean"] + student["math"] +\
student["english"] + student["science"]
def student_get_average(student):
return student_get_sum(student) / 4
def student_to_string(student):
return "{}\t{}\t{}".format(
student["name"],
student_get_sum(student),
student_get_average(student))
students = [
create_student("μ€μΈμ±", 87, 98, 88, 95),
create_student("μ°νμ§", 92, 98, 96, 98),
create_student("ꡬμ§μ°", 76, 96, 94, 90),
create_student("λμ μ£Ό", 98, 92, 96, 92),
create_student("μ€μλ¦°", 95, 98, 98, 98),
create_student("μ€λͺ
μ", 64, 88, 92, 92)
]
print("μ΄λ¦", "μ΄μ ", "νκ· ", sep="\t")
for student in students:
print(student_to_string(student))
ν΄λμ€
μ¬μ©λ²
class ν΄λμ€ μ΄λ¦:
ν΄λμ€ λ΄μ©
class Student:
μΈμ€ν΄μ€
μ¬μ©λ² μΈμ€ν΄μ€ μ΄λ¦(λ³μ μ΄λ¦) = ν΄λμ€ μ΄λ¦() # μμ±μ ν¨μλΌκ³ λΆλ₯Έλ€
class Student: # ν΄λμ€ μ μΈ
psss
student = Student() # νμμ μ μΈ
students =[ # νμ 리μ€νΈ μ μΈ
Student(),
Student(),
Student(),
Student(),
Student(),
Student()
]
μμ±μ
class ν΄λμ€ μ΄λ¦:
def __init__(self, μΆκ°μ μΈ λ§€κ°λ³μ):
pass
# μ¬κΈ°μ self λ μκΈ° μμ μ λνλ΄λ λμ
λ리
# μ κ·Όν λλ self.<μλ³μ> ννλ‘ μ κ·Ό
class Student:
def __init__(self, name, korean, math, english, science):
self.name = name
self.korean = korean
self.math = math
self.english = english
self.science = science
students = [
Student("μ€μΈμ±", 87, 98, 88, 95),
Student("μ°νμ§", 92, 98, 96, 98),
Student("ꡬμ§μ°", 76, 96, 94, 90),
Student("λμ μ£Ό", 98, 92, 96, 92),
Student("μ€μλ¦°", 95, 98, 98, 98),
Student("μ€λͺ
μ", 64, 88, 92, 92)
]
print(students[0].name)
print(students[1].name)
print(students[2].name)
print(students[3].name)
print(students[4].name)
print(students[5].name)
μλ©Έμ
μμ±μμ λ°λλ‘ μΈμ€ν΄μ€κ° μλ©Έλ λ νΈμΆλλ ν¨μ
λ©μλ
class ν΄λμ€ μ΄λ¦:
def λ©μλ μ΄λ¦ (self, μΆκ°μ μΈ λ§€κ°λ³μ):
pass
# ν΄λμ€λ΄λΆμ ν¨μ(λ©μλ) μ μΈνκΈ°
class Student:
def __init__(self, name, korean, math, english, science):
self.name = name
self.korean = korean
self.math = math
self.english = english
self.science = science
def get_sum(self):
return self.korean + self.math +\
self.english + self.science
def get_average(self):
return self.get_sum() / 4
def to_string(self):
return "{}\t{}\t{}".format(\
self.name,\
self.get_sum(),\
self.get_average())
students = [
Student("μ€μΈμ±", 87, 98, 88, 95),
Student("μ°νμ§", 92, 98, 96, 98),
Student("ꡬμ§μ°", 76, 96, 94, 90),
Student("λμ μ£Ό", 98, 92, 96, 92),
Student("μ€μλ¦°", 95, 98, 98, 98),
Student("μ€λͺ
μ", 64, 88, 92, 92)
]
print("μ΄λ¦", "μ΄μ ", "νκ· ", sep="\t")
for student in students:
print(student.to_string())
μ΄λ€ ν΄λμ€μ μΈμ€ν΄μ€μΈμ§ νμΈνκΈ° : isinstance
isinstance(μΈμ€ν΄μ€, ν΄λμ€) νμΈ
isinstance(student, Student) : true
# λ¨μ μΈμ€ν΄μ€ νμΈ
# type(student) == Student
# μ΄λ isinstance() ν¨μλ μμκ΄κ³κΉμ§ νμΈνκ³ ,
# λ°λ©΄ type() ν¨μλ μμκ΄κ³λ₯Ό νμΈνμ§ μλλ€
class Student:
def study(self):
print("곡λΆλ₯Ό ν©λλ€.")
class Teacher:
def teach(self):
print("νμμ κ°λ₯΄μΉ©λλ€.")
classroom = [Student(), Student(), Teacher(), Student(), Student()]
for person in classroom:
if isinstance(person, Student):
person.study()
elif isinstance(person, Teacher):
person.teach()
νΉμν μ΄λ¦μ λ©μλ : str() ν¨μ
κ°μ²΄λ₯Ό λ¬Έμμ΄λ‘ λ³νν μ μμΌλ©°, to_String() ν¨μλ₯Ό λμ νμ¬ μ¬μ©
class Student:
def __init__(self, name, korean, math, english, science):
self.name = name
self.korean = korean
self.math = math
self.english = english
self.science = science
def get_sum(self):
return self.korean + self.math +\
self.english + self.science
def get_average(self):
return self.get_sum() / 4
def __str__(self):
return "{}\t{}\t{}".format(
self.name,
self.get_sum(),
self.get_average())
students = [
Student("μ€μΈμ±", 87, 98, 88, 95),
Student("μ°νμ§", 92, 98, 96, 98),
Student("ꡬμ§μ°", 76, 96, 94, 90),
Student("λμ μ£Ό", 98, 92, 96, 92),
Student("μ€μλ¦°", 95, 98, 98, 98),
Student("μ€λͺ
μ", 64, 88, 92, 92)
]
print("μ΄λ¦", "μ΄μ ", "νκ· ", sep="\t")
for student in students:
print(str(student))
νΉμν μ΄λ¦μ λ©μλ : λΉκ΅ν¨μ
greater than or equal (ν¬κ±°λ κ°λ€)
less than or equal (μκ±°λ κ°λ€)
class Student:
def __init__(self, name, korean, math, english, science):
self.name = name
self.korean = korean
self.math = math
self.english = english
self.science = science
def get_sum(self):
return self.korean + self.math +\
self.english + self.science
def get_average(self):
return self.get_sum() / 4
def __str__(self, student):
return "{}\t{}\t{}".format(
self.name,
self.get_sum(student),
self.get_average(student))
def __eq__(self, value):
return self.get_sum() == value.get_sum()
def __ne__(self, value):
return self.get_sum() != value.get_sum()
def __gt__(self, value):
return self.get_sum() > value.get_sum()
def __ge__(self, value):
return self.get_sum() >= value.get_sum()
def __lt__(self, value):
return self.get_sum() < value.get_sum()
def __le____(self, value):
return self.get_sum() <= value.get_sum()
students = [
Student("μ€μΈμ±", 87, 98, 88, 95),
Student("μ°νμ§", 92, 98, 96, 98),
Student("ꡬμ§μ°", 76, 96, 94, 90),
Student("λμ μ£Ό", 98, 92, 96, 92),
Student("μ€μλ¦°", 95, 98, 98, 98),
Student("μ€λͺ
μ", 64, 88, 92, 92)
]
student_a = Student("μ€μΈμ±", 87, 98, 88, 95),
student_b = Student("μ°νμ§", 92, 98, 96, 98),
print("student_a == student_b = ", student_a == student_b)
print("student_a != student_b = ", student_a != student_b)
print("student_a > student_b = ", student_a > student_b)
print("student_a >= student_b = ", student_a >= student_b)
print("student_a < student_b = ", student_a < student_b)
print("student_a <= student_b = ", student_a <= student_b)
ν΄λμ€ λ³μμ λ©μλ
ν΄λμ€ λ³μ
# μ¬μ©
class ν΄λμ€ μ΄λ¦:
ν΄λμ€ λ³μ = κ°
# μ κ·Ό
ν΄λμ€ μ΄λ¦.λ³μ μ΄λ¦
class Student:
count = 0
def __init__(self, name, korean, math, english, science):
self.name = name
self.korean = korean
self.math = math
self.english = english
self.science = science
Student.count += 1
print("{}λ²μ§Έ νμμ΄ μμ±λμμ΅λλ€.".format(Student.count))
students = [
Student("μ€μΈμ±", 87, 98, 88, 95),
Student("μ°νμ§", 92, 98, 96, 98),
Student("ꡬμ§μ°", 76, 96, 94, 90),
Student("λμ μ£Ό", 98, 92, 96, 92),
Student("μ€μλ¦°", 95, 98, 98, 98),
Student("μ€λͺ
μ", 64, 88, 92, 92)
]
print()
print("νμ¬ μμ±λ μ΄ νμ μλ {}λͺ
μ
λλ€.".format(Student.count))
# μ¬μ©
class ν΄λμ€ μ΄λ¦:
@classmethod
ν΄λμ€ λ³μ = κ°
# μ κ·Ό
ν΄λμ€ μ΄λ¦.λ³μ μ΄λ¦(λ§€κ°λ³μ )
# @classmethod : λ°μ½λ μ΄ν°
# @λ‘ μμνλ κ²μ νμ΄μ¬μμλ λ°μ½λ μ΄ν°λΌκ³ νλ©° "κΎΈλ©°μ£Όλ κ²"μ΄λΌλ μλ―Έλ₯Ό κ°μ§λ€
# ν¨μ λ°μ½λ μ΄ν°μ ν΄λμ€ λ°μ½λ μ΄ν°λ‘ λλλ€.
class Student:
count = 0
students = []
@classmethod
def print(cls):
print("------ νμ λͺ©λ‘ ------")
print("μ΄λ¦\tμ΄μ \tνκ· ")
for student in cls.students:
print(str(student))
print("------- ------- -------")
def __init__(self, name, korean, math, english, science):
self.name = name
self.korean = korean
self.math = math
self.english = english
self.science = science
Student.count += 1
Student.students.append(self)
def get_sum(self):
return self.korean + self.math +\
self.english + self.science
def get_average(self):
return self.get_sum() / 4
def __str__(self):
return "{}\t{}\t{}".format(\
self.name,\
self.get_sum(),\
self.get_average())
Student("μ€μΈμ±", 87, 98, 88, 95)
Student("μ°νμ§", 92, 98, 96, 98)
Student("ꡬμ§μ°", 76, 96, 94, 90)
Student("λμ μ£Ό", 98, 92, 96, 92)
Student("μ€μλ¦°", 95, 98, 98, 98)
Student("μ€λͺ
μ", 64, 88, 92, 92)
Student("κΉλ―Έν", 82, 86, 98, 88)
Student("κΉμ°ν", 88, 74, 78, 92)
Student("λ°μν", 97, 92, 88, 95)
Student("μμ€μ", 45, 52, 72, 78)
Student.print()