在电子应用程序中,我尝试传输连接的 USB 设备中的一些文件。
我使用 USB 检测模块来检测新的 USB,但它没有提供有关安装路径的任何详细信息,那么我如何传输文件?
(最好是跨平台解决方案)
有没有办法使用direct阻止对象实例化__init__,只允许通过工厂方法实例化?
Task() --> raise NotAllowedDirectInstantiation
Task.factory() --> return Task()
这可能还是我只是想多少?我知道我可以提供一些文档和警告,但只是想知道它是否可以完成.
例如.
class Task:
def __init__():
# Should not allow anyone to directly call Task()
# but factory can call it
@classmethod
def factory_policy1(cls)
# Do some stuff here
# Raise events and stuff..
return Task()
@classmethod
def factory_policy2(cls)
# Do some policy 2 stuff here
# Raise events and stuff..
return Task()
Run Code Online (Sandbox Code Playgroud)
我看到了这个Python - 我如何强制使用工厂方法来实例化一个对象?但似乎是关于单身人士的讨论.
用例可能是当我们想要应用某些业务规则或在实例化新任务时引发某些事件但这些事件与Task对象没有密切关系时所以我们不希望混淆__init__那些事件.此工厂也不一定是一种类方法.它可能在别的地方.例如
# factories.py
from tasks.py import Task …Run Code Online (Sandbox Code Playgroud)