0
當閱讀谷歌應用程序引擎的python ndb api時,我在這一行中進行了攝像。如何用數學符號作爲python輸入變量名?
Guestbook.query().order(-Guestbook.post_date)
留言簿是一個實體類,post_date是一個屬性類。
但是order函數如何將其作爲輸入?其不值它的名字,更具體地說它是 其定義的類。
如何定義函數來接受這樣的輸入?
當閱讀谷歌應用程序引擎的python ndb api時,我在這一行中進行了攝像。如何用數學符號作爲python輸入變量名?
Guestbook.query().order(-Guestbook.post_date)
留言簿是一個實體類,post_date是一個屬性類。
但是order函數如何將其作爲輸入?其不值它的名字,更具體地說它是 其定義的類。
如何定義函數來接受這樣的輸入?
Guestbook.post_date
是一個類的實例,它實現了__neg__
方法來返回一個對象,該對象將告知數據庫API按該列降序排列。
下面是它如何工作的一個小例子(顯然真正的類要複雜得多):
class SqlOrder(object):
def __init__(self, column, order='ASC'):
self.column = column
self.order = order
def __neg__(self):
return SqlOrder(self.column, 'DESC')
def __str__(self):
return '%s %s' % (self.column, self.order)
>>> foo = SqlOrder('foo')
>>> str(foo)
'foo ASC'
>>> str(-foo)
'foo DESC'