Python和结构的嵌套类

时间:2016-11-12 20:05:33

标签: python class inheritance nested

我在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')概念。

这是如何正确完成的?

1 个答案:

答案 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')