python中的语句变量?
问题描述:
我正在阅读一些python代码,并遇到此问题。由于我主要编写C和Java(因为语句甚至没有用这些语言编译),我不确定它在python中是什么。python中的语句变量?
self.current
,“变量作为语句”是什么意思?这只是某种方式来打印变量,或者这是一个特殊的语法事件/练习在处理python中的异常?
class PriorityQueue():
def __init__(self):
self.queue = []
self.current = 0
def next(self):
if self.current >=len(self.queue):
self.current
raise StopIteration
out = self.queue[self.current]
self.current += 1
return out
答
这真的没有做任何事情,它可以做什么特别的唯一途径,如@Daniel说,在评论是,如果self.current
指property method。像下面这样:
class X():
@property
def current(self):
mail_admins()
return whatever
def next(self):
...
这样,调用self.current
,实际上会做一些事情。
但无论如何它的绝对不被认为是良好的做法,因为属性就是这样一个属性,如果它应该做某件事情,它应该是方法。
答
我意识到这可以用来检查属性/方法是否实际存在于传递的参数中。可能对输入健全性检查有用。
def test(value):
try:
value.testAttr
except AttributeError:
print "No testAttr attribute found"
你碰巧有班里的其他人吗? – iScrE4m
它根本没有做任何事情,它可以自由移除而没有任何后果。它甚至不打印任何东西。很难说如果不知道该成员的背景,也许它正在做一些偷偷摸摸的黑魔法,但没有想到。 – CoryKramer
它本身并没有做任何事情。也许'current'是一个带有属性装饰器的方法,并且该方法有副作用?但这是编写代码的一种非常奇怪的方式。 –