介绍
模块封装时候,希望有一些函数不被外部直接调用。C语言通常采用static int function()
形式以及头文件形式作为标识。而python不存在头文件,但可以通过修饰符@staticmethod
进行代替。
@staticmethod
def your_function():# 你的代码print("your function work")
设置方法
设置方法:在函数上方添加@staticmethod
- 首先在test1.py输入如下两个函数
@staticmethod
def __a():print("a")def b():print("b")
- 在test2.py中导入test1.py 并调用
import test1test1.__a()
test1.b()
- 可以看到如下报错信息
可以看出,__a()
这个函数无法执行,但调用b()
则不会有问题
Traceback (most recent call last):File "D:\Python_demo\demo2\ledaProgram\code\te2.py", line 3, in <module>te1.__a()
TypeError: 'staticmethod' object is not callable
staticmethod介绍
我们在类中写staticmethod修饰,其含义可以参考
https://www.runoob.com/python/python-func-staticmethod.html