小编Ctr*_*l-C的帖子

如何分组功能没有副作用?

我有一个带有几个辅助函数的函数.这是相当普遍的情况.我想将它们分组在一个共同的上下文中以便于阅读,我想知道如何正确地做到这一点.

  • 他们需要~15行
  • 只有主函数从其他地方调用
  • 没有计划在不久的将来重用辅助功能

简化示例:

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)

python

11
推荐指数
1
解决办法
221
查看次数

如何显示/流式传输网络摄像头几秒延迟?

我想要一个网络摄像头来录制和一个屏幕来显示"实时"流,延迟几秒钟.

使用案例:需要记录一个表演并几乎现场显示,几秒钟的延迟,以便快速审查.性能最多需要几秒钟,需要立即显示(查看)而无需任何手动点击.有很多尝试,手动点击会使这个过程更长久.

可能的来源:

  • Android 6.0.1手机上的主摄像头(前面一个阴天像GB的景观)
  • Android 6.0平板电脑上的主摄像头或前置摄像头
  • 笔记本电脑上的网络摄像头(Linux Ubuntu 17.04或Windows 8.1) - 没有单独的GPU

可能的显示:

  • Android平板电脑,如上所述
  • 笔记本电脑,如上

其他信息:

  • 不需要音频
  • 常见的WiFi网络
  • IP网络摄像头已安装在手机和平​​板电脑上
  • 编程技巧(我更喜欢Python)
  • 可以设置一个nginx服务器
  • ......也在网上
  • 网络连接

要点:

  • 实际上显示了一个> = 2s延迟的可读流

尼斯对富人:

  • 不使用互联网
  • 可调延迟,如果不是:在3-6s范围内
  • 高品质
  • 按需记录
  • 超级功能:记录回来的能力(点击最后x秒保存)

通常使用笔记本电脑的网络摄像头并在其屏幕上显示自定义延迟的流将是非常棒的.

video streaming delay video-streaming

-4
推荐指数
1
解决办法
1447
查看次数

标签 统计

delay ×1

python ×1

streaming ×1

video ×1

video-streaming ×1