Python 클래스의 자기

안녕하세요, 이 튜토리얼의 여러분, 제가 파이썬에서 배운 것self을 공유하고 싶습니다. 제가 아는 한, 이것은 나와 같은 대부분의 초보자가 OOP와 클래스를 이해하는 데 문제가 있는 것 중 하나입니다!
나는 당신에게 빛을주고 당신이 무대 뒤에서 정확히 self 하는 일을 이해할 때 얼마나 멋진지 보여주기 위해 Pro(어려움)가 아닌 초보자(Simple)처럼 글을 쓰려고 왔습니다. 클래스를 만들고 싶습니다!
이제 자세히 살펴보고 코딩 기술을 향상해 보겠습니다.

먼저 두 가지 사항을 알아야 합니다.

  1. Method: A function which is associated with a class

  2. Attributes: Some data that is related to a class



그래서 우리는 College나 University를 위한 Class(Object)를 갖고 싶고 학생들을 파이썬 코드로 표현하고 싶습니다!
이러한 이유로 우리는 모든 학생이 나이, 이름, 이메일, 대출, 지불 등과 같은 몇 가지 방법과 속성을 가질 수 있는 클래스를 가질 수 있습니다.

💡 Note: Make sure you are starting your class name with an upper case letter. (It's a convention!) like:
class Name:
pass



첫 번째 클래스를 만들어 봅시다 >>> :

class Student:
    pass




  • 클래스와 클래스 인스턴스의 차이점은 무엇입니까?

  • A class is like a blueprint and a sample for creating instances, and every student that we'll create would be an instance of our Student() class and every instance is unique! (It means they are in different locations in memory).
    Take a look at this example below:



    class Student:
        pass
    
    
    first_student = Student()
    second_student = Student()
    
    


    이 경우 first_studentsecond_studentStudent() 클래스의 인스턴스입니다.

    *모든 인스턴스가 고유하다고 말한 것은 무엇을 의미합니까?

    Let's print our two instances and see what will happen...



    print(first_student, second_student)
    


    산출:

    >>> <__main__.Student object at 0x7f68e60b0820>
    
    <__main__.Student object at 0x7f68e60b0d30>
    


    보시다시피 메모리(b0820 및 b0d30)의 다른 위치에 있습니다.


    클래스를 사용하지 않고 인스턴스 변수를 수동으로 코딩하면 얼마나 어려운지 보여주고 싶습니다!

    class Student:
        pass
    
    
    first_student = Student()
    second_student = Student()
    
    
    first_student.first_name = "James"
    first_student.last_name = "White"
    first_student.email = "[email protected]"
    first_student.age = 21
    first_student.loan = 1000
    
    second_student.first_name = "Leo"
    second_student.second_name = "Ledger"
    second_student.email = "[email protected]"
    second_student.age = 45
    second_student.loan = 2400 
    


    따라서 여기에 인스턴스에 고유한 5가지 속성이 있습니다.
    이 예를 살펴보겠습니다.

    print(first_student.age, second_student.age)
    


    산출:

    >>> 21 45
    


    그러나 5개의 속성에 대해서만 10줄의 코드를 작성했음을 보았듯이 다른 방법이 있습니다.
    이 모든 작업을 자동으로 수행하고 시간을 절약하려면 def __init__ 메서드!(초기화를 의미)라는 특수 메서드를 사용해야 합니다.

    💡 Note: It's a convention to use self when you want to call instances in Classes.
    After self you can define your arguments .


    def __init__ 메서드 내부

    class Student:
        def __init__(self, first_name, last_name, age, loan):
            self.first_name = first_name
            self.last_name = last_name
            self.age = age
            self.loan = loan
            self.email = first_name + last_name + "@collegename.com"
    



    What does "self" do in python class?
    If we compare the above examples, we created instance variables in two ways:

    1. Manually
    2. Automatically let's take a look at the first_name variable when we created Manually:


    first_student.first_name = "James"
    


    자동으로:

    class Student:
        def __init__(self, first_name):
            self.first_name = first_name
    
    


    그리고 둘을 비교하면...

    Manually: 
    
    first_student.first_name = "James"
    
    
    VS 
    
    Automatically:
    
    
    def __init__(self, first_name):
            self.first_name = first_name
    


    보시다시피, 자기는 정확히 인스턴스처럼 행동합니다.selffirst_student와 같습니다.
    따라서 클래스에서 self를 호출하면 인스턴스처럼 작동하지만 자동으로 작동합니다!
    따라서 self 메서드에서 def __init__를 전달하면 self가 정의한 인스턴스로 바뀝니다.
    이 예를 보고 무슨 말인지 이해하십시오.

    class Student:
        def __init__(self, first_name, last_name, age, loan):
            self.first_name = first_name
            self.last_name = last_name
            self.age = age
            self.loan = loan
            self.email = first_name + last_name + "@collegename.com"
    
    
    first_student = Student("Muhammad", "Khanjani", 22, 2000)
    
    print(first_student.first_name)
    


    우리가 쓸 때:

    first_student = Student("Muhammad", "Khanjani", 22, 2000)
    print(first_student.name)
    
    


    산출:

    Muhammad
    

    __init__ 메서드는 자동으로 실행되므로 첫 번째 학생은 클래스에서 self로 전달되고 Student("Muhammad", "Khanjani", 22, 2000)에서 정의한 모든 속성을 설정합니다!
    그래서, 다른 사람을 위해:

    Manually:
    self.last_name = last_name
    self.age = age
    self.loan = loan
    self.email = first_name + last_name + "@collegename.com"
    
    VS
    
    
    Automatically:
    
    first_student.last_name = "White"
    first_student.email = "[email protected]"
    first_student.age = 21
    first_student.loan = 1000
    
    


    따라서 self 파이썬 클래스의 인스턴스로 정확히 생각할 수 있습니다!

    수동 및 자동 비교 완료(selfinit 방법 사용!):

    class Employee:
        def __init__(self, first, last, pay):
            self.firstname = first
            self.lastname = last
            self.pay = pay
            self.email = first + "." + last + "@banji.com"  
        def fullname(self):
            return f"{self.firstname} {self.lastname}"
    emp_1 = Employee("MuhammadHussein", "Khanjani", 5000)
    emp_2 = Employee("Farshid", "Keshavaz", 2000)
    print(emp_1.firstname)
    print(emp_2.email)
    
    
    
    
    VS 
    
    
    
    
    class Employee2:
        pass
    emp_1 = Employee2()
    emp_2 = Employee2()
    emp_1.firstname = 'Walter'
    emp_1.lastname = 'White'
    emp_1.full_name = emp_1.firstname + emp_1.lastname
    emp_1.email = '[email protected]'
    emp_1.pay = 50000
    emp_2.firstname = 'Jesse'
    emp_2.lastname = 'Pinkman'
    emp_2.full_name = emp_2.firstname + emp_2.lastname
    emp_2.email = '[email protected]'
    emp_2.pay = 2000
    print(emp_1.firstname)
    print(emp_2.email)
    


    이것은 파이썬과 클래스에서 self의 첫 번째 부분입니다. 너무 길게 쓰고 싶지 않습니다. 왜냐하면 저 같은 초보자에게는 지루할 것이기 때문입니다!
    수업에서 self의 목적을 얻으시기 바랍니다. 그러나 더 많은 설명이 필요하고 이 게시물에 더 명확하게 작성하고 추가할 수 있다고 생각되면 아래에 의견을 남기고 지식과 요점을 공유하십시오. 우리와 함께 봅니다.

    내 게시물을 읽어 주셔서 감사합니다.

    계속 전진하세요 ツ



    즐거운 여행 👊



    코드 💛



    🅑🅐🅝🅙🅘

    좋은 웹페이지 즐겨찾기