πŸ“—
JunegLee's TIL
  • TIL
  • python
    • class
    • String Basic
    • regularExpression
    • String function
    • Generator
    • String format
    • getset
    • module
    • while
    • numpy
    • print()
    • matplotlib
    • for
    • Boolean
    • tuple
    • package
    • input(variable)
    • list
    • if
    • file
    • type()
    • pandas
    • function
    • dictionary
    • ꡬ문 였λ₯˜μ™€ μ˜ˆμ™Έ
    • builtinFunction
    • Constructor
  • algorithm
    • sort
      • mergeSort
      • insertionSort
      • bubbleSort
      • heapSort
      • quickSort
      • selectionSort
    • recursion
    • Greedy
    • DepthFirstSearch
    • basic
      • DataStructure
    • hash
    • BreadthFirstSearch
  • tensorflow
    • keras
      • layers
        • Flatten
        • Flatten
        • Dense
        • Dense
        • Conv2D
        • Conv2D
    • tensorflow1x
    • tensorflow2x
  • DB
    • setting
    • join
    • subQuery
    • overview
  • deep-learning
    • neuralNetwork
    • perceptron
    • neuralNetworkLearning
    • convolution neural network
    • Gradient Descent
    • Linear Regression
    • backPropagation
    • logistic regression
    • overview
  • textPreprocessing
    • overview
  • java
    • basics
      • generic
      • Variable
      • String
    • theory
      • Object Oriented Programing
  • NLP
    • Embedding
    • Natural Language Processing
Powered by GitBook
On this page
  • Class
  • 좔상화
  • 객체λ₯Ό λ§Œλ“œλŠ” ν•¨μˆ˜ (1)
  • 객체λ₯Ό μ²˜λ¦¬ν•˜λŠ” ν•¨μˆ˜ (2)
  • 클래슀
  • μΈμŠ€ν„΄μŠ€
  • μƒμ„±μž
  • μ†Œλ©Έμž
  • λ©”μ„œλ“œ
  • μ–΄λ–€ 클래슀의 μΈμŠ€ν„΄μŠ€μΈμ§€ ν™•μΈν•˜κΈ° : isinstance
  • νŠΉμˆ˜ν•œ μ΄λ¦„μ˜ λ©”μ†Œλ“œ : str() ν•¨μˆ˜
  • νŠΉμˆ˜ν•œ μ΄λ¦„μ˜ λ©”μ†Œλ“œ : λΉ„κ΅ν•¨μˆ˜
  • 클래슀 λ³€μˆ˜μ™€ λ©”μ†Œλ“œ

Was this helpful?

  1. python

class

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)

μ†Œλ©Έμž

μƒμ„±μžμ™€ λ°˜λŒ€λ‘œ μΈμŠ€ν„΄μŠ€κ°€ μ†Œλ©Έλ  λ•Œ ν˜ΈμΆœλ˜λŠ” ν•¨μˆ˜

def __del__

λ©”μ„œλ“œ

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))

νŠΉμˆ˜ν•œ μ΄λ¦„μ˜ λ©”μ†Œλ“œ : λΉ„κ΅ν•¨μˆ˜

ν•¨μˆ˜

μ •μ˜

eq

equal (κ°™λ‹€)

ne

not equal (λ‹€λ₯΄λ‹€)

gt

greater than (크닀)

ge

greater than or equal (ν¬κ±°λ‚˜ κ°™λ‹€)

it

less than (μž‘λ‹€)

le

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()
PreviouspythonNextString Basic

Last updated 4 years ago

Was this helpful?