为什么在具有函数的模块上使用python类?

Kie*_*den 1 python module class python-3.x

我自学python(3.x),我正在尝试理解类的用例.我开始明白他们实际做了什么,但我很难理解你为什么要使用一个类而不是创建一个带有函数的模块.

例如,如何:

class cls1:
    def func1(arguments...):
    #do some stuff


obj1 = cls1()
obj2 = cls1()

obj1.func1(arg1,arg2...)
obj2.func1(arg1,arg2...)
Run Code Online (Sandbox Code Playgroud)

与......不同:

#module.py contents
    def func1(arguments...):
        #do some stuff

import module

x = module.func1(arg1,arg2...)
y = module.func1(arg1,arg2...)
Run Code Online (Sandbox Code Playgroud)

这可能很简单,但我无法理解它.

到目前为止,我已经在编写python程序方面取得了相当大的成功,但它们都是程序性的,并且只导入基本的模块函数.课程是我的下一个最大障碍.

Mat*_*meo 5

如果需要多个实例,则使用类,并且希望实例不会相互干扰.

模块的行为类似于单例类,因此您只能有一个实例.

编辑:例如,如果你有一个名为example.py的模块:

    x = 0
    def incr():
           global x
           x = x + 1

    def getX():
           return x
Run Code Online (Sandbox Code Playgroud)

如果您尝试两次导入这些模块:

    import example as ex1
    import example as ex2

    ex1.incr()
    ex1.getX()
    1
    ex2.getX()
    1
Run Code Online (Sandbox Code Playgroud)

这就是模块只导入一次的原因,因此ex1和ex2指向同一个对象.