首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >解决StackOverflow异常

解决StackOverflow异常
EN

Stack Overflow用户
提问于 2019-10-18 00:14:05
回答 1查看 28关注 0票数 0

虽然我一直在阅读StackOverflow.com上的有价值的帖子,但我对此非常感谢。我不需要创建我自己的线程。

:)我一直想知道StackOverflow是什么意思。最后,我“能够”做到这一点。

有谁有任何建议如何修复下面的代码?

我正在尝试做的是以某种方式管道命令到新的cmd进程。这是必需的,因为我需要使用特定的局部变量运行cmd。

通常在像echo dir | cmd.exe这样的批处理中完成。然而,我想单独使用IronPython来实现这一点。

提前谢谢。

以下是代码的示例:

代码语言:javascript
复制
import clr

clr.AddReference("mscorlib")
import System

from System.Diagnostics import Process



""" Example"""

class P(System.Diagnostics.Process):
    def __init__(self):
        self.StartInfo.UseShellExecute = True
        self.StartInfo.FileName = r"C:\Windows\System32\cmd.exe"
        self.StartInfo.CreateNoWindow = False
        self.standard_input = None
        self.standard_output = None
        self.standard_error = None


    @property
    def StandardInput(self):
        return self.standard_input

    @StandardInput.getter
    def StandardInput(self):
        return self.standard_input

    @StandardInput.setter
    def StandardInput(self, val):
        self.standard_input = System.IO.StreamWriter(val)

    def Start(self):
        return self.Start()


p_instance = P()
p_instance.Start()
p_instance.StandardInput("dir")
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-10-25 04:55:36

通常,当您重写一个方法并想要调用原始实现时,您将调用超级实现。您的Start()函数正在调用自身,从而导致堆栈溢出。

代码语言:javascript
复制
def Start(self):
    return self.Start()

你需要这样做:

代码语言:javascript
复制
def Start(self):
    return super(P, self).Start()
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58436857

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档