我有一个带有几个辅助函数的函数.这是相当普遍的情况.我想将它们分组在一个共同的上下文中以便于阅读,我想知道如何正确地做到这一点.
简化示例:
def create_filled_template_in_temp(path, values_mapping):
template_text = path.read_text()
filled_template = _fill_template(template_text, values_mapping)
result_path = _save_in_temp(filled_template)
return result_path
def _fill_template(template_text, values_mapping):
...
def _save_in_temp(filled_template):
_, pathname = tempfile.mkstemp(suffix='.ini', text=True)
path = pathlib.Path(pathname)
path.write_text(text)
return path
...
create_filled_template_in_temp(path, values_mapping)
Run Code Online (Sandbox Code Playgroud)
请注意,我不希望模块级别的辅助方法,因为它们只属于一种方法.想象一下,在同一模块中有如上所述的几个这样的例子.模块级别的Maany非公共功能.一团糟(这种情况多次发生).另外,我想给它们上下文并使用上下文的名称来简化内部命名.
解决方案#0:一个模块
把它放在另一个模块中:
template_fillers.create_in_temp(path, values_mapping)
Run Code Online (Sandbox Code Playgroud)
问题:
最后,这只是为它添加模块的代码太少.
解决方案#1:一堂课
创建一个没有__init__
且只有一个公共(通过命名约定)方法的类:
class TemplateFillerIntoTemp:
def run(self, path, values_mapping):
template_text = path.read_text()
filled_template = self._fill_template(template_text, values_mapping)
result_path = self._save_in_temp(filled_template)
return result_path
def _fill_template(self, template_text, values_mapping):
...
def _save_in_temp(self, filled_template):
_, …
Run Code Online (Sandbox Code Playgroud) 我想要一个网络摄像头来录制和一个屏幕来显示"实时"流,延迟几秒钟.
使用案例:需要记录一个表演并几乎现场显示,几秒钟的延迟,以便快速审查.性能最多需要几秒钟,需要立即显示(查看)而无需任何手动点击.有很多尝试,手动点击会使这个过程更长久.
可能的来源:
可能的显示:
其他信息:
要点:
尼斯对富人:
通常使用笔记本电脑的网络摄像头并在其屏幕上显示自定义延迟的流将是非常棒的.