가 난 내 자신의 목적을 위해 하위 클래스에하고 싶은 타사 시스템에서 클래스이지만, 그것은과 같이, 함수 내에서 정의되어 :함수 안에 정의 된 클래스를 가져올 수 있습니까?
def foo():
class Bar():
return Bar
난 그냥 그것을 가져 오려고하면 from x import bar
, ImportError: cannot import name 'Bar'
이 있습니다. Bar (바)를 가져올 수 있습니까? 아마도 원래 코더는 다른 사람들이 직접 사용하지 못하도록 특별히 클래스 안에 클래스를 넣었을 것입니다.
내가 얻으려고 클래스는 여기에서 찾을 수 있습니다 BaseCookieSessionFactory 내에 정의 CookieSession,이다 : http://docs.pylonsproject.org/projects/pyramid/en/master/_modules/pyramid/session.html
그것은 이미 내가 원하는 걸의 90 %를 수행하고, 낭비 것처럼 보인다 처음부터 내 자신을 구현하려면 코드의 대부분을 복사하여 붙여 넣기 만하면됩니다. 이 foo
때까지 존재하지 않기 때문에,
from pyramid.session import SignedCookieSessionFactory
def MySessionFactory(secret, [other args here...]):
@implementer(ISession)
class MySession(SignedCookieSessionFactory(secret)):
...
return MySession
'foo' 함수를 가져온 다음'c = foo()'함수를 호출하여 클래스'c '를 가져와야합니다. 그렇게하는 것이 당신이하려고하는 것에 효과가없는 어떤 이유가 있습니까? –
'Bar'라는 단일 클래스가 없습니다. 오히려,'foo()'를 호출 할 때마다'Bar'라는 이름의 * 새로운 클래스 *가 생성되고 그에 대한 참조가 리턴됩니다. –