【发布时间】:2014-06-29 02:49:17
【问题描述】:
我最近开始使用类,有两个问题。
我知道,像函数一样,python 必须在进行或启动任何调用之前读取所有类行一次。 > 编辑>>>所以我想知道,是否可以在第一次调用中运行整个程序 python 自动启动? > IE。严格在类之外运行整个程序,而不进行任何调用或实例。
我很好奇的另一件事是是否有一种方法可以在单个类之外运行循环,例如“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