수업 방법

1. 클래스별 메서드

클래스가 생성되면 주로 다음 메서드와 같은 일부 메서드가 포함됩니다.

__init__

생성자, 객체 생성 시 호출 소멸자, 객체 해제 시 사용 __repr__ 인쇄, 변환 m__ 인덱스에 따라 값 할당 __getitem__ 인덱스에 따라 값 가져오기 __len__ 길이 가져오기 __cmp__ 비교 연산__call__ 함수 호출__add__ 덧셈 연산__sub__ 뺄셈 연산__mul__ 곱셈 연산__div__ 나눗셈 연산__mod__ Rema 작업 중__pow__ Powered

물론 클래스에 대한 관련 정보를 가져와야 하는 경우도 있습니다.

type(obj): 해당 객체 유형을 가져옵니다.

isinstance(obj, type): 객체가 지정된 유형입니다. 예:

hasattr(obj, attr): 객체에 지정된 속성/메서드가 있는지 확인합니다.

getattr(obj, attr[, default]) 속성/메서드의 값을 가져옵니다. 해당 속성이 없으면 기본값을 반환합니다(기본값이 설정되어 있다는 전제). 그렇지 않으면 AttributeError 예외가 발생합니다.

setattr(obj, attr, value): 속성/메소드의 값을 설정합니다. to obj.attr=value;

dir(obj): 예 해당 개체의 모든 속성 및 메서드 이름 목록을 가져옵니다.

2. 메서드 액세스 제어

실제로 메서드를 속성으로 간주할 수도 있습니다. 따라서 메소드의 액세스 제어는 속성과 동일합니다. 본질적으로 비공개 메소드는 없습니다. 모든 것은 프로그래머가 의식적으로 Python 프로그래밍 표준을 준수하는 데 달려 있습니다.

예제는 다음과 같으며 구체적인 규칙은 속성과 동일합니다.

#!/usr/bin/env python
# -*- coding: UTF-8 -*-
class User(object):
    def upgrade(self):
        pass
    def _buy_equipment(self):
        pass
    def __pk(self):
        pass

3. Method decorator

@classmethod는 객체 대신 클래스 이름을 사용하여 직접 호출됩니다.

@property는 다음과 같이 액세스할 수 있습니다. 호출 방법은 속성과 동일합니다.

구체적인 사용 예를 참조하세요:

#!/usr/bin/env python
# -*- coding: UTF-8 -*-
class UserInfo(object):
    lv = 5
    def __init__(self, name, age, account):
        self.name = name
        self._age = age
        self.__account = account
    def get_account(self):
        return self.__account
    @classmethod
    def get_name(cls):
        return cls.lv
    @property
    def get_age(self):
        return self._age
if __name__ == '__main__':
    userInfo = UserInfo('两点水', 23, 347073565);
    # 打印所有属性
    print(dir(userInfo))
    # 打印构造函数中的属性
    print(userInfo.__dict__)
    # 直接使用类名类调用,而不是某个对象
    print(UserInfo.lv)
    # 像访问属性一样调用方法(注意看get_age是没有括号的)
    print(userInfo.get_age)

작업 결과:

e53dc1900a55b2ba13dc94b9e9d2d4c.png

지속적인 학습
  • 코스 추천
  • 코스웨어 다운로드
현재 코스웨어를 다운로드할 수 없습니다. 현재 직원들이 정리하고 있습니다. 앞으로도 본 강좌에 많은 관심 부탁드립니다~
__del__