我正在开发一个旨在通过部分订购信息扩充Python套接字消息的项目.我正在构建的库是用Python编写的,需要插入通过套接字函数发送的现有系统的消息.
我已经阅读了一些资源,即@Omnifarious在这个问题上的答案python- imports -from-builtin-library-when-module-with-name-name-exist
你可以做一件非常丑陋和可怕的事情,不涉及钩住进口机制.这是你可能不应该做的事情,但它可能会奏效.它将您的日历模块变为系统日历模块和日历模块的混合体.
我已经实现了导入机制解决方案,但我们已经决定这不是我们想要采取的方向,因为它过分依赖于环境.在我的情况下,将类合并为混合而不是依赖导入机制的解决方案似乎是最好的方法.
为什么混合动力被称为丑陋而可怕的解决方案?我想在我的项目中开始实现它,但我对这些警告很谨慎.它似乎有点hackish,但由于它将成为安装脚本的一部分,运行此一次不是没有问题吗?
这是一个代码片段,其中插入需要在发送之前拦截套接字消息:
class vector_clock:
def __init__(self):
"""
Initiate the clock with the object
"""
self.clock = [0,0]
def sendMessage(self):
"""
Send Message to the server
"""
self.msg = "This is the test message to that will be interposed on"
self.vector_clock.increment(0) # We are clock position 0
# Some extraneous formatting details removed for brevity….
# connectAndSend needs interpositioning to include the vector clock
self.client.connectAndSend(totalMsg);
self.client.s.close()
Run Code Online (Sandbox Code Playgroud) 我正在处理一些奇怪的遗留代码。他们有一个实现 JPanel 的自定义对象。此JPanel对象是主应用程序中的辅助弹出屏幕。我遇到的问题是检测辅助弹出屏幕何时关闭。
我尝试WindowListener为该类实现 a ,但是当我尝试添加它时,没有JFrame与此对象关联。我假设这是因为他们使用的是自定义对象,并且它是一个嵌入式弹出屏幕。
我试图检索一个JFrame使用:
JFrame parentFrame = (JFrame) SwingUtilities.getWindowAncestor(this);
Run Code Online (Sandbox Code Playgroud)
在NullPointerException. 我不知道为什么在此页面上很难检测到右上角的“x”关闭按钮!我应该提到他们能够将鼠标和键侦听器添加到嵌入在JPanel. 但是整个窗口的外部侦听器给我带来了麻烦。
(请耐心等待,这是我的第一个 stackoverflow 帖子,我是 Swing 的新手。)
非常感谢!!