홈>
2 개의 수업이 있습니다 :
class Parent(object):
def __init__(self, id, name):
self.id = id
self.name = name
self.__parent_vars = ['id', 'name'] # make a copy
def print_values(self):
res = {}
for el in self.__parent_vars:
res[el] = vars(self)[el]
return res
class Child(Parent):
def __init__(self, id, name, last_name, age):
Parent.__init__(self, id, name)
self.last_name = last_name
self.age = age
내가하고 싶은 것은-
Child
에서 얻는 것입니다
Parent
의 매개 변수
수업. 추가 변수를 사용하여 만들었고 작동하지만 추가 변수없이 더 우아한 솔루션이 필요합니다. 피클 수업에 필요합니다. 추가 변수를 만들면 큰 프로젝트에서 스키마가 손상됩니다.
다음과 같은 것을 찾으려고 노력합니다 :
c = Child(12,"Foo","whatever",34)
vars(c.super())
예상되는 출력으로 :
{'id': 12, 'name': 'Foo'}
<시간>
이 질문을 찾았습니다 : 기본 클래스 (Python)에서만 속성을 가져옵니다 . 해당 솔루션을 사용할 수 없습니다.
- 답변 # 1
관련 자료
- C ++ 부모 개체가 자식 개체의 내부 데이터를 잃습니다 복사 생성자 또는 참조로 전달과 관련된 문제가 있습니까?
- java - JVM이 해당 클래스의 이름이있는 경우 해당 클래스에서 주 메서드에 액세스하기 위해 주 메서드를 포함하는 클래스의 개체를 만들 수없는 이유는 무엇입니까?
- c# - 객체가 생성 된 클래스 확인
- Java의 메서드 내에있는 클래스의 개체를 만드는 방법은 무엇입니까?
- 부모 클래스에서 자식 클래스의 인스턴스가있는 목록을 가져 오는 C # 가장 좋은 방법
- python - 목록의 요소를 사용하여 클래스에 대한 개체를 만드는 방법
- pointers - C ++에서 클래스 개체의 참조를 다른 클래스 개체로 올바르게 전달하는 방법
- javascript - vuejs 2에서 부모 동적 클래스 CSS를 분리하는 방법
- swift - 색상을 변경하지 않는 부모 클래스에서 상속하는 자식 클래스
- Illuminate \ Support \ Collection 클래스의 객체를 Laravel 8에서 int로 변환 할 수 없습니다
- C ++의 객체 배열 정의에서 클래스 객체 배열 초기화 값 설정
- drupal - Request 객체 또는 다른 서비스 클래스에서 컨트롤러 클래스를 가져 오는 방법이 있습니까?
- VBA Word normaldotm에서 클래스 모듈 개체 만들기
- java - 클래스 객체를 키로 사용하여 해시 맵 객체에 액세스하는 방법
- java - uml 객체 다이어그램 - 상위 또는 하위
- c++ - 클래스 개체가 자신의 개인 멤버에 액세스 할 수 없습니까?
- pgp - LDAP 기반에서 클래스별로 개체를 검색하는 방법은 무엇입니까?
- python - 클래스가 유형이 아닌 객체에서 상속한다는 것은 무엇을 의미합니까?
- loops - 파이썬 - 두 개체 목록을 반복하고 부모 인스턴스 이름을 가져옵니다
- R의 새 개체 목록을 사용하여 msfit 개체 클래스 업데이트
관련 질문
- attrs python 패키지로 기본 메소드를 호출하는 방법
- python : 파이썬 함수에서 하드 코딩된 문자열 값을 피하는 방법
- python : 아나콘다를 사용하여 jupyter 노트북에 영어 공간 모델을 설치하는 방법
- python : pyglet: on_resize가 그래픽을 깨뜨립니다.
- python : 파이썬을 설치하는 설치 프로그램을 어떻게 만들 수 있습니까?
- python : for 루프를 사용하여 각 항목 없이 모든 목록을 인쇄하려면 어떻게 해야 합니까? 파이썬에 대안이 있습니까?
- PyTelegramBotAPI는 python3.9에서 send_invoice를 보낼 수 없습니다.
- python : Selenium TypeError: __init__()에 예기치 않은 키워드 인수 'service'가 있습니다. 이 경우 왜?
- bash 스크립트에서 올바른 Python 설치를 동적으로 선택하십시오.
- python : 여러 함수 호출에 대해 원래 난수 출력 유지 [중복]
당신이 쉽게 할 수 없을 까봐 걱정됩니다. 파이썬에서 클래스는 메소드와 정적 속성 만 가지고 있습니다. 비 정적 속성은 일반적으로
__dict__
에 저장됩니다 객체의 속성. 즉, 특별한 경우를 제외하고 부모 클래스 메서드, 자식 클래스 메서드 또는 메서드 외부에 할당 된 속성을 쉽게 알 수 없습니다.__init__
를 계측하는 meta_class 만 상상할 수 있습니다 호출 중에 변경된 속성을 저장하는 방법 :다음을 제공합니다 :
BEWARE: 속성이
__init__
외부에 설정된 경우 이 메소드는이 메타 클래스에 의해 등록되지 않습니다 ...