파이썬 기초 문법 학습--클래스


머리말

이번 학습 콘텐츠는 주로 객체지향 수업이다.


1. 클래스 생성 및 사용

다음은 간단한 클래스 정의로, Dog 뒤에 괄호가 없는 것은 이 클래스가 다른 클래스로부터 상속받지 않고 공백에서 생성되었음을 나타냅니다.

>>> class Dog:
	def __init__(self,name,age):
		self.name = name
		self.age = age
	def sit(self):
		print("{name} is sit".format(name = self.name))

__init__() 메소드는 매직 메소드입니다. 이 메소드에는 세 가지 형식 매개변수인 self, name, age가 있으며, 그 중 self는 누락될 수 없습니다. 인스턴스를 생성하기 위해 이 클래스를 호출할 때 init 메소드가 자동으로 호출되기 때문입니다. 그런 다음 실제 매개변수 self가 자동으로 전달되고 인스턴스와 관련된 각 메서드 호출은 인스턴스 자체에 대한 참조인 실제 매개변수 self를 자동으로 전달하여 인스턴스가 클래스의 속성 및 메서드에 액세스할 수 있도록 합니다.

sit() 메서드는 생성된 인스턴스가 이 메서드를 호출할 수 있음을 나타내는 하나의 형식 매개 변수 self만 있는 일반 메서드입니다.

dog_1 = Dog('deng',18)
dog_1.sit()

위는 Dog 클래스의 인스턴스 dog_1을 생성하고 name과 age 두 개의 실제 매개변수만 전달하면 self가 자동으로 전달됩니다. 그런 다음 sit() 메서드를 호출합니다.

경우에 따라 일부 속성에 대한 기본값을 지정하는 것도 가능합니다.
예를 들어

>>> class Dog:
	def __init__(self,name,age):
		self.name = name
		self.age = age
		self.number = 100
	def sit(self):
		print("{name} is sit".format(name = self.name))

>>> dog_1 = Dog('deng',18)
>>> dog_1.number
100
>>> 

이 클래스를 정의할 때 숫자 속성의 값을 100으로 지정하고 이 클래스의 인스턴스를 생성한 다음 이 기본 속성의 값을 출력합니다.

2. 상속

클래스를 작성할 때 처음부터 새로 만들 필요가 없으며 부모 클래스를 상속하도록 선택할 수 있습니다.
클래스가 부모 클래스에서 상속되면 부모 클래스의 모든 속성과 메서드를 가져옵니다. 하위 클래스는 부모 클래스의 모든 속성과 메서드를 상속한 후 자체 속성과 메서드를 정의할 수도 있습니다.

class Animal:
	def __init__(self,name,age):
		self.name = name
		self.age = age
	def sit(self):
		print("sittint")

여기에서 Animal 클래스가 정의됩니다.

 class Dog(Animal):
	def __init__(self,name,age,number):
		super().__init__(name,age)
		self.number = number

그런 다음 Animal 부모 클래스에서 상속되는 Dog 클래스를 정의합니다. 하위 클래스의 __init__ 메서드에서 첫 번째 super().__init__(name,age)기능은 부모 클래스의 __init__ 메서드를 호출하여 하위 클래스가 이 메서드에 정의된 모든 속성을 포함하도록 하는 것입니다. 하위 클래스인 Dog()가 상위 클래스인 Animal()보다 하나 더 많은 속성 번호를 가지고 있음을 알 수 있으므로 다음으로 숫자 속성에 값을 할당합니다.

부모 클래스의 메서드가 하위 클래스에 적합하지 않은 경우 부모 클래스의 메서드를 재정의하도록 선택할 수도 있습니다. 하위 클래스의 부모 클래스와 동일한 이름으로 메서드 이름을 작성하면 됩니다.

추천

출처blog.csdn.net/weixin_47250738/article/details/130665702