Python 기본 객체 지향 프로그래밍
객체 지향 프로그래밍(Object Oriented Programming, OOP)은 객체를 모델링하는 방법으로 시뮬레이션에 유용합니다. 객체 지향 프로그래밍 이전에는 긴 코드 조각이 함수로 작성되었습니다. 함수에는 장점이 있지만 코드를 멋진 스파게티 그릇처럼 보이게 만드는 경향이 있습니다.
맛있지 만 아무도 읽을 수 없습니다. 아무도 스파게티를 읽을 수 없기 때문입니다.
그러나 다른 코딩 방법이 나타났습니다. 이 방법은 스파게티가 아니라 깔끔하고 잘 정돈된 막대기에 가깝습니다.
이제 우리가 부엌을 만드는 회사라고 상상해 봅시다. 우리는 또한 훌륭한 프로그래머이기 때문에 주방 제작 과정을 돕기 위해 몇 가지 코드를 작성하고 있습니다. 우리는 부엌을 위한 일반적인 템플릿을 생각해 내야 합니다. 이 코드를 입력해야 합니다(입력이 중요합니다. 복사 및 붙여넣기 금지).
class GenericKitchen:
def __init__(self, numOfApplicances, kitchenSize):
self.numberOfApplicances = numOfApplicances
self.kitchenSize = kitchenSize # kitchenSize is a tuple (width, height)
print("I have been inited")
def getInventory(self):
kitchenWidth = self.kitchenSize[0]
kitchenHeight = self.kitchenSize[1]
print(f"Number of appliances: {self.numberOfApplicances}")
print(f"Size of kitchen: {kitchenWidth} by {kitchenHeight}")
고장:
class GenericKitchen:
이것은 파이썬에게
GenericKitchen
가 클래스임을 알려주는 데 사용됩니다.def __init__(self, numOfAppliances, kitchenSize):
self.numberOfAppliances = numOfAppliances
self.kitchenSize = kitchenSize
print("I have been inited")
__init__
메서드(일명 함수)는 던더 메서드(이중 밑줄)입니다. dunder 메서드는 내장 클래스가 내장 함수와 상호 작용할 수 있도록 하는 함수 유형이지만 이__init__
메서드는 . self
는 파이썬에게 이 변수가 GenericKitchen
클래스의 일부임을 알려줍니다(자세한 내용은 나중에 설명).def getInventory(self):
kitchenWidth = self.kitchenSize[0]
kitchenHeight = self.kitchenSize[1]
print(f"Number of appliances: {self.numberOfApplicances}")
print(f"Size of kitchen: {kitchenWidth} by {kitchenHeight}")
Get Inventory는
self
에서 상속받은 함수이므로 self에서 모든 변수를 상속받습니다. kitchenWidth
및 kitchenHeight
는 지역 변수이므로 함수 외부에서 사용할 수 없습니다.클래스를 호출하려면 다음을 입력하십시오.
kitchenDimensions = (100, 100)
# ^^^^^^^^^^^^^^^
# Don't use such long names, they are a pain to type
normalKitchen = GenericKitchen(5, kitchenDimensions)
>>> I have been inited
함수를 호출하지 않은 경우 화면에 파이썬이 인쇄
I have been inited
하는 이유가 궁금할 수 있습니다. 글쎄, 그 이유는 __init__
메서드가 dunder 메서드이기 때문에 클래스가 호출될 때 무언가를 수행하는 기능입니다. 비슷해보이고,number = list("hello")
print(number)
>>> ["h", "e", "l", "l", "o"]
이유는
list
가 클래스이기 때문입니다. 목록의 __init__
메서드는 목록을 생성하고 이를 변수 번호로 반환합니다.본인
자아는 이해해야 할 매우 중요한 개념입니다(자신도 이해하세요 :)
self
는 클래스가 공유하는 모든 변수의 컨테이너입니다. 예를 들어:class RandomClass():
def __init__(self):
self.name = "Jim"
self.printName()
self.name = "Tomi"
def printName(self):
print(self.name)
def setAge(self):
self.age = 14
rand = RandomClass()
rand.printName()
>>> Jim
Tomi
일어나는 일은 각 클래스 정의와 함께
self
가 정의된다는 것입니다. self
는 클래스 간에 공유되는 클래스에서 선언된 모든 항목의 컨테이너가 됩니다. printName
가 인수 self
를 취하는 경우 self
및 self.age
와 같이 self.setAge
와 관련된 모든 변수 및 함수를 취합니다. 클래스를 변수에 전달할 때 발생하는 일은 self
가 함께 전달되고 self
가 변수 이름과 같아지는 것입니다.결론
클래스는 사물을 모델링하고 더 깨끗한 코드를 위해 아는 것이 중요합니다. Breadstick Code는 Spaghetti Code보다 낫습니다(Breadstick Code Up을 방금 만들었습니다). 클래스는 class ClassName
를 사용하여 정의됩니다. self
는 클래스의 모든 인스턴스가 포함된 위치입니다.
Reference
이 문제에 관하여(Python 기본 객체 지향 프로그래밍), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://dev.to/tominekan/python-basic-object-oriented-programming-2587
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
Reference
이 문제에 관하여(Python 기본 객체 지향 프로그래밍), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/tominekan/python-basic-object-oriented-programming-2587텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)