2
自己的類
使用Python /硒,我有很多頁面對象下面的鏈接時將返回對方。這是完美的,但爲了方便起見,我想不斷調用同一個變量的方法而不重新分配它。Python的方法改變
的玩具下面的例子:
class Foo(object):
identity = 'foo'
def __init__(self, key):
self.key = key
def change(self):
return Bar(self.key)
class Bar(object):
identity = 'bar'
def __init__(self, key):
self.key = key
def change(self):
return Blah(self.key)
class Blah(object):
identity = 'blah'
def __init__(self, key):
self.key = key
def change(self):
return Foo(self.key)
x = Foo('somekey')
x.identity # > 'foo'
x.key # > 'somekey'
x = x.change()
x.identity # > 'bar'
x.key # > 'somekey'
我想保持作用在返回的對象不重新分配X,如:
x.change().identity # > 'blah'
x.identity # > *should* result in 'blah', not 'bar'
我收集我需要某種容器類即會將所有方法調用委託給一個子變量,並重新分配它。但是,我無法弄清楚如何。我想它的工作原理是這樣的:
x = SomeContainer(Foo, 'otherkey')
x.change().change()
x.key # > 'otherkey'
x.identity # > 'blah'
x.change()
x.identity # > 'foo'
給我的感覺是,如果你得到這個工作,你會再想要適應它改變成任意對象,你知道它之前,你會正在調用像'x.become(y)'這樣的函數,你甚至不會注意到你剛剛重新創建了變量。 – user2357112
你爲什麼不想重新分配?應該沒有理由不這樣做。 – JDrost1818
我可以重新分配,如果有其他選擇,我只是好奇。一旦webdriver導航到新頁面,舊頁面對象就沒用了。很少/沒有它的命令可以工作,很少/沒有它的元素存在,並且驗證失敗。 –