Skip to main content
 首页 » 编程设计

python之为什么使用 python 类而不是带有函数的模块

2025年05月04日10zhenyulu

我正在自学 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指向同一个对象。