python - 如何为类中的类设置值
问题描述
我有一个 Sheet 类,它包含两个属性,每个属性都是一个类
- 总结(类)
- 数据(类)
摘要和数据有1个属性df,它是一个数据框
我的问题是,我说得对吗,因为摘要和数据是类:
我不应该将摘要和数据直接作为数据框存储在 Sheet 类的属性中。
我应该将摘要和数据存储为对象,当主类希望设置摘要/数据时,我使用 Sheet 的设置器,它使用摘要/数据的设置器来设置实际的数据框
在 Main Class 中创建工作表对象:
import Sheet
sheet = Sheet.Sheet() # create empty sheet
sheet.set_summary(new_df) # set summary
sheet.set_data(new_df) # set data
在工作表类中:
import Summary
import Data
class Sheet:
def __init__(self):
self.name = None
self._summary = Summary.Summary()
self._data = Data.Data()
def get_SheetSummary(self):
return self._summary.get_summary()
def set_SheetSummary(self,new_df):
self._summary.set_summary(new_df)
def get_SheetData(self):
return self._data.get_data()
def set_SheetData(self, new_df):
self._data.set_data(new_df)
解决方案
如果Summary
并且Data
是只有一个数据框作为属性并且不处理任何额外内容的类,我认为没有理由为它们创建一个额外的类,而不是直接在您的Sheet
类中保存数据框。如果事情变得更复杂,您仍然可以将这些属性提取到单独的类中。
如果这两个类所做的不仅仅是保存数据帧,那么您可能是一种将它们封装在一个类中的好方法。
推荐阅读
- azure - 如何发布我的 Azure DevOps 版本?
- stripe-payments - 创建订单时如何使用 Stripe Orders API 收到“卡片错误”?
- c++ - 从参数中剪切特定位置的向量字符串
- python - 安装 Jupyter 扩展 - 从 setup.py 自动安装和启用
- sql - SSIS 开发人员表达式
- c++ - 使用 bazel 构建的二进制文件在 pprof 中查看源代码
- c++ - 声明具有可变维度的二维数组
- c++ - 如果你有两个全局函数,一个用于 `Widget`,另一个用于 `double`,而 `Widget` 类定义了 cast-to-double,会发生什么?
- c# - 使用 C# 和实体框架技术构建数据库
- c++ - C++ 使用向量实现合并排序