如何限制可以从导入的模块调用哪些函数?我可以将函数设为私有吗?(Python)

阿贝拉

例如,在文件 A.py 中,我有函数:a ()、b () 和 c ()。我将A.py导入到B.py,但是我想限制函数a()和b()。这样从 B.py 我将只能调用 c()。我怎样才能做到这一点?有公共,私人功能吗?

雅罗斯拉夫·苏尔日科夫

您可以为您制作A.py一个具有以下结构的python包:

B.py  
A/
|-- __init__.py
`-- A.py

__init__.py

from .A import c

A.py(示例):

def a():
    return 'a'

def b():
    return 'b'

def c():
    print(a(), b(), 'c')

B.py(示例):

import A
A.c()  # a b c
A.a()  # AttributeError: 'module' object has no attribute 'a'
A.b()  # not executed because of exception above

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

Python函数:可以将它们设为私有吗?

我可以使用函数在python中导入模块吗

我可以在不同模块的两个私有函数之间传递变量吗?

我可以从同一对象javascript中调用私有函数吗

我可以创建私有枚举构造函数吗?

如何仅通过导入模块就可以调用 python 模块函数

可以将Clojure规范设为私有吗?

在Python中,我可以调用导入模块的main()吗?

我们可以将 Web 层中的 EC2 实例设为私有吗?

我可以在本地类中使用导入模块中的函数吗?(Python)

我可以将现有的 javascript 函数调用到 jquery 函数中吗

我可以将函数导入打字稿类文件吗?

我可以在Typescript定义和函数调用中将参数设为可选参数吗?

可以从变量模块调用函数吗?

我可以在不放弃JS中函数调用的情况下限制函数吗?

我可以从.py文件中调用多个函数而不必分别导入每个函数吗?

Python/Kivy:我可以在双击标签时调用函数吗

我可以用 sinon 监视外部模块函数中的函数调用吗?

我可以从Selenium调用AngularJS函数吗

我可以从Dart调用Kotlin函数吗

我可以直接调用函数指针吗?

我可以调用JS函数吗?

我可以静态导入私有子类吗?

有什么方法可以从Python调用C ++函数吗?

可以在 Python 的类中调用有状态函数吗?

您可以使用私有API来挂接iOS中的系统函数调用吗?

我可以在phpunit类中具有私有函数吗?

我可以将cron设为“随机”吗?

模块可以为我们提供哪些函数在 Python 中无法提供的功能?