このコードを考えてみましょう。
class Page(object):
def __init__(self, name, title):
self.name = name
self.title = title
self.selected = False
def select(self): <-- How can I make this method work?
for Page in Pages:
Page.selected = False
self.selected = True
class Website(object):
def __init__(self):
self.index = Page("index", "Home")
self.settings = Page("settings", "Settings")
self.users = Page("users", "Users")
self.logs = Page("logs", "Logs")
self.faq = Page("faq", "FAQ")
def __iter__(self):
return iter([self.index, self.settings, self.users, self.logs, self.faq])
Pages = Website()
私がやろうとしていることは、ある種違法のようです。それにもかかわらず、私はそれを行う方法があると確信しています。getメソッドをどこかで書き直さなければならないようです。ご助力ありがとうございます!
これが、Bottlepyを使用してこれらのクラスを使用することを意図していた方法です。
ページの設定:
@route('/')
@route('/<selectedPage>')
@route('/<selectedPage>/')
def dynamic_routing(selectedPage='index'):
for Page in Pages:
if selectedPage == Page.name:
Page.select()
return template('default')
ページ情報の取得(Bottlepyテンプレート内):
%for Page in Pages:
%if Page.selected:
<title>{{Page.title}}</title>
%else:
<title>Page Not Found</title>
%end
%end
コードを実際のバージョンに編集しました。このような速い入力をみんなに感謝します!!! あなたたち最高!それでもおそらく最善のアプローチではありませんが、現時点ではそれを解決する別の方法を考えることはできません。