Python 클래스의 자기
self
을 공유하고 싶습니다. 제가 아는 한, 이것은 나와 같은 대부분의 초보자가 OOP와 클래스를 이해하는 데 문제가 있는 것 중 하나입니다!나는 당신에게 빛을주고 당신이 무대 뒤에서 정확히
self
하는 일을 이해할 때 얼마나 멋진지 보여주기 위해 Pro(어려움)가 아닌 초보자(Simple)처럼 글을 쓰려고 왔습니다. 클래스를 만들고 싶습니다!이제 자세히 살펴보고 코딩 기술을 향상해 보겠습니다.
먼저 두 가지 사항을 알아야 합니다.
Method: A function which is associated with a class
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_student
및 second_student
는 Student()
클래스의 인스턴스입니다.*모든 인스턴스가 고유하다고 말한 것은 무엇을 의미합니까?
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:
- Manually
- 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
보시다시피, 자기는 정확히 인스턴스처럼 행동합니다.
self
는 first_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
파이썬 클래스의 인스턴스로 정확히 생각할 수 있습니다!수동 및 자동 비교 완료(
self
및 init
방법 사용!):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
의 목적을 얻으시기 바랍니다. 그러나 더 많은 설명이 필요하고 이 게시물에 더 명확하게 작성하고 추가할 수 있다고 생각되면 아래에 의견을 남기고 지식과 요점을 공유하십시오. 우리와 함께 봅니다.내 게시물을 읽어 주셔서 감사합니다.
계속 전진하세요 ツ
즐거운 여행 👊
코드 💛
🅑🅐🅝🅙🅘
Reference
이 문제에 관하여(Python 클래스의 자기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://dev.to/banji220/self-in-python-class-20bh
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
Reference
이 문제에 관하여(Python 클래스의 자기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/banji220/self-in-python-class-20bh텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)