【问题标题】:Python Classes - No calls? One Loop? [closed]Python 类 - 没有电话?一个循环? [关闭]
【发布时间】:2014-06-29 02:49:17
【问题描述】:

我最近开始使用类,有两个问题。

  1. 我知道,像函数一样,python 必须在进行或启动任何调用之前读取所有类行一次。 > 编辑>>>所以我想知道,是否可以在第一次调用中运行整个程序 python 自动启动? > IE。严格在类之外运行整个程序,而不进行任何调用或实例。

  2. 我很好奇的另一件事是是否有一种方法可以在单个类之外运行循环,例如“while”甚至“for x in y”。本质上,我很好奇的是是否有办法“继承”正在运行的循环。

例子:

class Loop:
    def __init__(self, exit=0):
        print "loop initiated"
        self.exit = exit

    def myloop(self): ##This was edited
        while self.exit == 0:
            print "look at me, I'm Looping!"

class Clock(Loop):

    def loopexit(self):
        print "one day I will close that loop"
        pass

    def tick(self):
        print "who knows what I might do one day"
        pass

aclock = Clock(exit=0)

alcock.myloop() #This was edited
aclock.loopexit() #This was edited

请记住,这个示例显然无法运行,因为在 myloop() 运行时无法进行退出调用。 > 编辑>>> 我包含了这个例子来展示我理论上是如何关闭这个循环的,尽管很明显它不会工作。基本上,我试图找到一个更接近这个例子的解决方案。 > 我也意识到可以从 myloop() 内部调用 exit,但请记住,这主要是关于继承的问题。

为简单起见,假设不能从 myloop() 内部关闭。

我能想出的唯一临时解决方案是在 myloop() 中使用 *args 作为参数,但我更喜欢不那么依赖 myloop() 的东西。

感谢所有反馈,

谢谢

【问题讨论】:

  • 如果您有两个单独的问题,应该在两个单独的帖子中提出。也就是说,我无法理解您的第一个问题,但您似乎将解析和函数定义与执行混淆了。
  • 我无法理解您的任何一个问题。什么是“这个单一的自启动 python 循环”?你打算让你的代码示例做什么?
  • 为了更清晰,我对其进行了编辑。至于第一个问题,看看这个:stackoverflow.com/questions/16885737/…
  • BrenBarn,我澄清了“这个单一的自我发起的......”以及编辑中示例的目的。
  • @NickSimas:如果你的问题是“你能把你所有的代码放在一个类体内吗”,答案基本上是肯定的,但这样做没有意义,因为如果你不打算使用类,为什么要拥有它?你的第二个问题还不清楚。您说它应该显示您希望如何关闭循环,但我完全不明白您打算关闭哪个循环的代码的哪一部分。

标签: python class loops inheritance


【解决方案1】:

至于你的第一个问题: 是的,可以在完全不使用类或函数的情况下制作 Python 程序: 所有语句都按照遇到的顺序执行

2)您肯定在其中混合了一些概念,但通常 “是” - 如果正在运行,则可以停止以另一种方法运行的循环 与该循环并行,在一个单独的线程中, 或使用某种异步形式的编程(这样 循环运行时执行另一种方法中的代码) 然而,这与继承无关。 (请注意,尽管 您的具体示例不会启动循环,而且, 你会与那里的self.exit 发生名称冲突) -

【讨论】:

  • 谢谢,jsbueno。我想问的是是否有一种方法可以构造一个循环,以便在没有任何并行处理的情况下关闭它。线程实际上可能是我正在寻找的答案。
  • 另外,关于第一个问题,我的意思是只使用类编写一个完整的程序,而编写的类之外没有任何代码行。到目前为止,我已经能够通过从类内部调用类来使其工作。
  • 是的,您可以完全在类主体中运行程序。模块主体上没有功能的程序已经是一件可怕的事情。类主体中的程序会更糟糕 - 但它会起作用。
猜你喜欢
  • 2013-04-09
  • 1970-01-01
  • 2014-02-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多