我正在自学 python (3.x),并试图了解类的用例。我开始理解它们实际做了什么,但我很难理解为什么您会使用类而不是创建具有函数的模块。
例如,如何:
class cls1:
def func1(arguments...):
#do some stuff
obj1 = cls1()
obj2 = cls1()
obj1.func1(arg1,arg2...)
obj2.func1(arg1,arg2...)
不同于:
#module.py contents
def func1(arguments...):
#do some stuff
import module
x = module.func1(arg1,arg2...)
y = module.func1(arg1,arg2...)
这可能非常简单,但我无法理解它。
到目前为止,我在编写 python 程序方面取得了相当大的成功,但它们都是程序化的,并且只导入基本的模块函数。类(class)是我的下一个最大障碍。
请您参考如下方法:
如果您需要它的多个实例,您可以使用类,并且您希望这些实例不会相互干扰。
模块的行为类似于单例类,因此您只能拥有它们的一个实例。
编辑:例如,如果您有一个名为 example.py 的模块:
x = 0
def incr():
global x
x = x + 1
def getX():
return x
如果您尝试两次导入这些模块:
import example as ex1
import example as ex2
ex1.incr()
ex1.getX()
1
ex2.getX()
1
这就是为什么模块只导入一次,所以ex1和ex2指向同一个对象。
