如何制作Python .py文件共享变量&常量?

时间:2018-05-02 01:40:12

标签: python python-3.x python-import header-files

我在大学里一直在学习C ++,有一件事我感兴趣的是创建共享头文件的能力,这样所有的cpp文件都可以访问其中的对象。我想知道是否有一些方法可以在变量和常量的python中做同样的事情?我只知道如何导入和使用其他py文件中的函数或类。

2 个答案:

答案 0 :(得分:3)

首先,如果你曾经使用过sys.argvos.sep,那么你已经使用了另一个模块的变量和常量。

因为共享变量和常量的方式与共享函数和类的方式完全相同。

实际上,函数,类,变量,常量 - 就Python而言,它们都只是模块全局变量。它们可能具有不同类型的值,但它们是同一种变量。

所以,让我们说你写这个模块:

# spam.py
cheese = ['Gouda', 'Edam']
def breakfast():
    print(cheese[-1])

如果您import spam,则可以使用cheese,与使用eggs的方式完全相同:

import spam

# call a function
spam.eggs()

# access a variable
print(spam.cheese)

# mutate a variable's value
spam.cheese.append('Leyden')
spam.eggs() # now it prints Leyden instead of Edam

# even rebind a variable
spam.cheese = (1, 2, 3, 4)
spam.eggs() # now it prints 4

# even rebind a function
spam.eggs = lambda: print('monkeypatched')
spam.eggs()

C ++头文件实际上只是一个穷人的模块。并非每种语言都像Python一样灵活,但几乎所有从Ruby到Rust的语言都有某种真实的模块系统;只有C ++(和C)要求你通过在编译时将代码包含在一堆不同的文件中来伪造它。

答案 1 :(得分:0)

如果您只是想制作函数定义,那么这篇文章可能会回答您的问题:

Python: How to import other Python files

然后你可以按照这里定义一个函数:

https://www.tutorialspoint.com/python/python_functions.htm

或者如果你想上课:

https://docs.python.org/3/tutorial/classes.html

您可以查看上一个链接中的示例3.9.5,以了解如何在不同的对象实例之间创建共享变量。