Python 학습 노트 (8) : 클래스 및 객체 생성, __init __ () 메서드 사용

1. 클래스 및 개체 만들기

1.1. 클래스 형식 정의 :

class 类名:
    方法列表

1.2 클래스를 기준으로 하나 이상의 객체를 생성합니다. 객체 생성 형식은 다음과 같습니다.

对象名1 = 类名()
对象名2 = 类名()

1.3. 샘플 코드

# 定义一个Person类
class Person:
    # 实例方法
    def speak(self):
        print("我在学Python")

# 实例化对象p1
p1 = Person()
# 给p1对象添加属性,以及对应的属性值
p1.name = "crystal"
#调用对象的实例方法
p1.speak()
print("我的名字叫", p1.name)

# 实例化对象p2
p2 = Person()
# 给p2对象添加属性,以及对应的属性值
p2.name = "allan"
# 调用实例化方法
p2.speak()
print("我的名字叫", p2.name)

2. 자체를 통해 개체의 속성을 가져옵니다.

객체가 생성되고 속성이 추가 된 후 클래스의 인스턴스 메서드에서 이러한 속성을 가져 오는 방법은 무엇입니까? ===》 self를 통해 객체의 속성 얻기

1.3의 코드는 다음과 같이 수정할 수 있습니다.

# 定义一个类
class Person:
    # 实例化方法
    # self指向调用speak()方法的对象
    def speak(self):
        print("我在学Python")
        # print("我的名字叫%s,年龄%d" % (self.name, self.age))
        # print("我的名字叫{n},年龄{a}".format(a=self.age, n=self.name))
        print("我的名字叫{},年龄{}".format(self.name, self.age))

# 实例化一个对象
p1 = Person()
# 给p1对象添加属性,以及对应的属性值
p1.name = "crystal"
p1.age = 20
#调用实例化方法,即可获取对象p1的属性
p1.speak()

3 .__ init __ () 메서드

3.1 .__ init __ () 매직 메서드

매직 방법 : 두 개의 밑줄 __로 시작하고 두 개의 밑줄로 끝나는 방법이 매직 방법입니다.

__init __ () 매직 메서드 : 일반적으로 속성 초기화 및 할당 작업을 수행하는 데 사용되며 __init __ () 매직 메서드는 생성 메서드라고도합니다.

샘플 코드는 다음과 같습니다.

# 定义一个类
class Person(object):
    # __init__()方法用来对变量做初始化和赋值操作,在类实例化对象的时候,会自动被调用
    def __init__(self):
        self.name = "crystal"
        self.age = 20

    # 实例化方法
    def speak(self):
        print("我的名字叫{},年龄{}".format(self.name, self.age))

# 实例化一个对象p,会自动调用__init()__对象
p = Person()
# 调用实例化方法speak(),即可获取对象p的属性
p.speak();

3.2. 매개 변수가있는 __init __ () 메서드

__init __ () 메서드에서 속성의 고정 값을 정의하면 각 인스턴스화 된 객체의 속성 값이 동일합니다. 각 인스턴스화 된 객체가 다른 속성 값을 갖도록하는 방법은 무엇입니까? ===》 파라미터가있는 __init __ () 메서드를 사용할 수 있습니다.

샘플 코드는 다음과 같습니다.

# 定义一个类
class Person(object):
    # __init__()构造方法,用来对变量做初始化和赋值操作
    def __init__(self, name, age):
        self.name = name
        self.age = age

    # 实例化方法
    def speak(self):
        print("我的名字叫{},年龄{}".format(self.name, self.age))

# 实例化一个对象p1
p1 = Person("crystal", 20)
# 调用实例化方法speak(),即可获取对象p1的属性值
p1.speak()

# 实例化一个对象p2
p2 = Person("allan", 29)
# 调用实例化方法speak(),即可获取对象p2的属性值
p2.speak()

3.3.주의

  • __init__(self)에는 기본적으로 self라는 매개 변수가 하나 있습니다. 객체를 생성 할 때 두 개의 실제 매개 변수가 전달되면 __init__(self)첫 번째 매개 변수로 self 외에 두 개의 매개 변수가 필요합니다. 예를 들면 다음과 같습니다.__init__(self,x,y);
  • 클래스 내에서 속성 및 인스턴스 메서드를 가져 와서 self를 통해 가져옵니다.
  • 클래스 외부에서 속성 및 인스턴스 메서드를 가져 와서 개체 이름으로 가져옵니다.
  • 한 클래스에 여러 개체가있는 경우 각 개체의 속성은 개별적으로 저장되고 고유 한 독립 주소를 갖습니다.
  • 인스턴스 메서드는 모든 객체가 공유하고 하나의 메모리 공간 만 차지하며 클래스는 self를 사용하여 인스턴스 메서드를 호출 한 객체를 결정합니다.

추천

출처blog.csdn.net/weixin_44679832/article/details/114183700