내가 작업하고있는 특정 모듈의 wierdness 때문에 한 클래스가 메서드에서 로컬로 생성 된 다른 클래스의 속성을 상속하는 일반적인 방법이 있는지 궁금합니다. . 예를 들어, 뭔가 다음 파이썬에서함수에서 클래스를 동적으로 상속 받음
class MyClass(DefForm()):
...
클래스는 일반 객체와 당신 :
def DefForm():
class F(object):
foo = bar
return F
class MyClass(DefForm):
pass
m = myClass()
m.foo
>>> 'bar'
문법은 하나 이상의 특정 클래스 이름 대신에 표현의 넓은 범위를 허용한다. 파이썬 2는'test' 표현식 (본질적으로 값'또는'함께'또는'if ... else' 표현식)이나 람다 정의 (실제로 어떻게 해석되는지는 모르겠습니다)를 허용합니다. 파이썬 3은 본질적으로 기본 클래스 목록을 함수에 대한 인수 목록으로 취급하므로 구문이 동일합니다. 예를 들어'x = (A, B); 클래스 C (* x) : pass'는'x '의 요소가 유효한 클래스 인 한 합법적입니다. – chepner
파이썬 2는 AFAIK; Python 3에서 splatting 트릭을 인식하지 못했습니다. 그것을 추가해 주셔서 감사합니다. –
다음은 [Python 2] (https://docs.python.org/2/reference/grammar.html) 및 [Python 3] (https://docs.python.org/3/reference/grammar) 링크입니다. .html) 문법. 각각의'classdef' 규칙을보십시오. – chepner