>  기사  >  백엔드 개발  >  클래스 인스턴스화 소개

클래스 인스턴스화 소개

零下一度
零下一度원래의
2017-07-20 21:06:142751검색

1. 클래스 정의

class Dog(object):   # 定义class

    def __init__(self, name):  # 构造函数,构造方法 == 初始化方法
        self.name = name   # d.name = name  类的属性 / 成员变量

    def say_hi(self):   # 类的方法
        print("Hello, I am a dog. My name is", self.name)

    def eat(self, food):
        print("%s is eating %s." % (self.name, food))


d = Dog("xiaohei")  # Dog(d,"xiaohei")  d == self

# d 实例化的对象即实例,类中的self相当于实例

d.say_hi()   # d.say_hai(d)

d.eat('beaf')
  • 첫 번째 메서드 __init__() 메서드는 이 클래스의 인스턴스가 생성될 때 클래스의 생성자 또는 초기화 메서드라고 하는 특수 메서드입니다.

  • self는 클래스의 인스턴스를 나타냅니다. 호출할 때 해당 매개변수를 전달할 필요는 없지만 클래스의 메서드를 정의할 때 self가 필요합니다.

2. Self는 클래스가 아닌 인스턴스를 나타냅니다.

클래스 메서드와 일반 함수 사이에는 단 하나의 특별한 차이점이 있습니다. 규칙에 따라 추가 첫 번째 매개변수 이름이 있어야 합니다. 이름은 self입니다. .

class Dog(object):

    def prt(self):
        print(self)
        print(self.__class__)

d = Dog()


print(d)
print("-------------")
d.prt()


#输出
<__main__.Dog object at 0x000001DDBD10C5F8>
-------------
<__main__.Dog object at 0x000001DDBD10C5F8>
<class &#39;__main__.Dog&#39;>

  self는 클래스의 인스턴스를 나타내고 현재 객체의 주소를 나타내고 self.class는 클래스를 가리키는 것을 실행 결과에서 명확하게 알 수 있습니다.

3. 인스턴스 객체 생성

new 키워드는 일반적으로 다른 프로그래밍 언어에서 클래스를 인스턴스화하는 데 사용되지만 Python에는 이러한 키워드가 없습니다. 클래스 인스턴스화는 함수 호출과 유사합니다.  

# 创建一个Dog类的对象
d = Dog("xiaohei")

  인스턴스화된 개체라고도 합니다. 인스턴스

IV. 속성에 액세스  

점(.)을 사용하여 개체의 속성에 액세스할 수 있습니다

# 通过 d.方法   来访问属性
d.eat(&#39;beaf&#39;)

#输出
xiaohei is eating beaf.

위 내용은 클래스 인스턴스화 소개의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.