我在python中嵌套类时遇到了一些麻烦。
请注意,下面的代码是一个简单的示例,显示了我想要做的事情,但基本上我想使用嵌套类来使我的代码更加结构化,并确保我不会遇到某些函数的名称冲突。
请参阅此处的示例代码:
class Chrome:
def __init__(self, url='http://localhost:4723/wd/hub'):
# Capabilities
capabilities = Capabilities.chrome()
# Start session
self.driver = webdriver.Remote(url, capabilities)
def get_url(self, url):
# Go to URL
self.driver.get(url)
class actions:
@staticmethod
def browse_url(url):
# Go to url
Chrome.get_url(url)
if __name__ == '__main__':
browser = Chrome()
browser.actions.browse_url('https://www.google.com')
您在if __name__ == '__main__'
中可以看到的目标是能够启动浏览器实例,然后以结构化方式调用函数。
但是我不知道如何正确实现browser.actions.browse_url('https://www.google.com')
概念。
这是如何正确完成的?
答案 0 :(得分:1)
您应该从get_url
的实例调用Chrome
而不是类本身,因为它是实例方法而不是静态方法:
...
@staticmethod
def browse_url(url):
Chrome().get_url(url)
...
if __name__ == '__main__':
Chrome.actions.browse_url('https://www.google.com')