【发布时间】:2014-01-03 02:39:11
【问题描述】:
我对 Python 很陌生,就 OOP 而言,这可能是我无法弄清楚以下内容的原因:
我正在编写一个 python 脚本,它打开一个文本文件,然后将其转换为 HTML,为编辑文件和 html 文件维护它的“自己的”镜像目录树。
由于目录创建和删除是自动完成的,除其他标准外,文件是否存在,我需要某种自动和动态的路径调整。该脚本必须对文件和相关目录进行多次检查,然后才能设置相应的路径并开始处理。
我决定将大多数更通用的功能(检查文件是否存在,如果找到重复文件名显示对话框等)放在一个单独的模块中,因为它们非常具体,不依赖于任何状态。实际上它们创建了状态(路径变量),所以如果这不是一个误解,那么一个类就没有意义了。
另一方面,我使用一个类来获取和设置路径,因为我需要从每个模块访问的路径,所以它基本上是路径的全局访问点。 该类在主模块中实例化。
现在我的问题是我不知道如何操作路径(使用路径 setters) 来自工具模块内的函数的主模块中的该实例。将类实例或主模块导入工具模块似乎不起作用。
一般来说,是否可以在所有模块文件中使用类实例,这是可行的方法,还是我以某种方式错过了重点?
我贴上相关的代码进行说明:
主模块内的Setter/Getter类
class SetEnv():
def __init__(self):
pass
def set_path_srcfile(self, path_srcfile):
self.path_srcfile = path_srcfile
def set_path_htmlfile(self):
self.path_htmlfile = self.path_srcfile.replace('source', 'html', 1).replace('.txt', '.html', 1)
def get_path_srcfile(self):
return self.path_srcfile
def get_path_htmlfile(self):
return self.path_htmlfile
稍后在 main_module 中:
env = SetEnv()
工具模块的一部分(在用户输入的定义内):
import main_module as mm
path_srcfile = dict[int(user_option)][1] # dictionary holding the path we want to set
mm.env.set_path_srcfile(path_srcfile)
mm.env.set_path_htmlfile()
【问题讨论】:
标签: python