함수가 spam
및 ham
이고 모듈이 eggs
및 foo
인 모듈이 있다고 가정합니다.Python에서 그룹화 관련 함수
def spam():
eggs()
foo()
...
def ham():
eggs()
foo()
...
이제 eggs
및 foo
는 spam
및 ham
에 의해 사용되며, 그래서 모듈 수준에서 노출하는 이해가되지 않습니다. _eggs
및 _foo
으로 이름을 바꿔 내부 용으로 사용할 수 있음을 나타내지 만 실제로는 spam
, ham
, eggs
및 foo
사이의 관계를 설정하지는 않습니다.
class SpamHam:
@staticmethod
def _eggs():
...
@staticmethod
def _foo():
...
@staticmethod
def spam():
...
@staticmethod
def ham():
...
을하지만 SpamHam
의 인스턴스 만 정적 메서드를 호출을 사용하지 않는 사용자를 기대하기 때문에이 skethy 보인다
그래서,이 같은 이러한 기능을 유지하기 위해 컨테이너 클래스를 만들 수 있습니다. 게다가 원하는 클래스가있을 때 클래스를 사용하는 것이 옳은 것처럼 보이지 않습니다. 그 방법 사이에 어떤 관계를 설정하는 것입니다.
내가 spamham
라는 별도의 모듈을 만들고 해당로이 네 가지 기능을 추가하는 듯했으나 spam
및 ham
정말 그들은 이미 모듈에 '소속'할 수 있었다.
그래서를 무슨 일이 같은 설정하는 올바른 방법입니다 관계를 파이썬으로?
또한 ... 기능은 다른 기능
2 함수의 기능에 대해 바람직하게는 올바른 아이디어를 호출 할 수 있다는 말은 아니다 당신의 모듈에서'__all__'을 사용하는 것을 고려하십시오. – kindall
@kindall - 물론입니다. 거기에 아무 해가 없습니다. 나는 그것이 "다른 한편으로는, 이것은 공적인 이름입니다"라는 또 다른 계층을 제공한다고 생각합니다. 그러나 개인적으로, 나는 결코'__all__'을위한 많은 사용을 발견하지 못했습니다. 'blah import * '에서 사람들은 코드에서 나쁜 일이 발생하더라도 그 값을받을 자격이 있습니다 ;-) – mgilson
'help (modulename)'은'__all__'을 존중합니다. 제 의견으로는 매우 유용합니다. – kindall