我正在尝试为我正在构建的python类动态设置一个资源文件。我解决这个问题的想法是,首先将变量设置为None
,然后使用模块级函数赋值。我的模块看起来像:
# my_module
df = None
def set_data(fp, sheet_name, index_col=[0, 1]):
# what I really want to do:
df = pd.read_excel(rf'{fp}', index_col=index_col)
# minimal example:
df = 'Foo'
class DataSet():
def __init__(self):
self.df = df
这是我测试的结果。我错过了什么
>>> import my_module
>>> my_module.df == None
True
>>> my_module.set_data('file.xlsx', 'sheet_1')
>>> my_module.df == None
True
>>> my_module.df == 'Foo'
False
更规范的形式是:
然后您只需创建
DataSet()
,例如:作为类变量:
用途:
也可以直接从
class
访问df
,而无需创建实例:相关问题 更多 >
编程相关推荐