이제 플러그인 시스템을 개발해야 합니다. 플러그인 시스템의 누구나 PY 파일을 작성하고 로드할 수 있습니다. 하지만
사용자가 lib의 다른 메소드나 변수에 액세스하는 것을 방지하는 방법은 무엇입니까?
all 이름을 추가하면 메인 프로그램에서 모두 *를 호출해야 하는데 괜찮나요?
小伙看你根骨奇佳,潜力无限,来学PHP伐。
python并没有真正的私有变量或者方法, 所以基本上是无法阻止别人访问另一个模块的方法或者变量, 但是如果用户是通过from lib.function import *, 那么我们可以通过__all__属性去设置*에서 가져오기로 지정할 수 있는 변수 또는 메서드, 예:
python
from lib.function import *
__all__
*
b2.py的输出, 并没有bar和baz, 所以我们可以通过这种方式, 来做一个简单的控制, 当然下划线开头的私有变量也限制了, 但这种限制对 import abc这种引入方式无效
b2.py
bar
baz
这种限制对 import abc这种引入方式无效
python
并没有真正的私有变量或者方法, 所以基本上是无法阻止别人访问另一个模块的方法或者变量, 但是如果用户是通过from lib.function import *
, 那么我们可以通过__all__
属性去设置*
에서 가져오기로 지정할 수 있는 변수 또는 메서드, 예:
에서 보실 수 있습니다.b2.py
的输出, 并没有bar
和baz
, 所以我们可以通过这种方式, 来做一个简单的控制, 当然下划线开头的私有变量也限制了, 但这种限制对 import abc这种引入方式无效