【问题标题】:Shorter type hints for long types长类型的较短类型提示
【发布时间】:2021-08-03 05:21:30
【问题描述】:

(请原谅标题不好,也许有人可以推荐一个更好的)

刚刚进入类型提示/类型检查并想添加一个函数,我正在向该函数传递一个 selenium webdriver 对象,该对象显示:

In:  type(driver)
Out: selenium.webdriver.chrome.webdriver.WebDriver

有没有一种方法可以在不输入整个内容的情况下缩短它? (没有双关语)

我发现了关于别名的信息,想知道使用类似的东西是否安全:

WebDriver = selenium.webdriver.chrome.webdriver.WebDriver
WebElement = selenium.webdriver.remote.webelement.WebElement

# Function definition follows:
def get_object(driver: WebDriver, ....) -> WebElement:
    ...

还有两个问题:

  • 我需要手动创建别名还是有更简单的方法?
  • 请注意别名和类型的最后一部分保持不变以便于识别。安全与否?

【问题讨论】:

    标签: python type-hinting typechecking python-typing


    【解决方案1】:

    执行此操作的 pythononic 方式是更改导入行:

    from selenium.webdriver.chrome.webdriver import WebDriver
    from selenium.webdriver.remote.webelement import WebElement
    
    # Function definition follows:
    def get_object(driver: WebDriver, ....) -> WebElement:
    

    【讨论】:

    • 当您说更改导入行时,您的意思是我们需要添加另一个from selenium.webdriver.chrome.webdriver import WebDriver 对吗?我们已经有一个from selenium import webdriver
    • 基本上:您想创建一个导入行来导入您希望稍后在代码中重用的最小符号。您甚至可以从同一个包中拥有多个导入行,如果需要,可以从不同深度导入不同的符号。
    猜你喜欢
    • 1970-01-01
    • 2020-10-24
    • 1970-01-01
    • 2021-10-19
    • 2021-08-29
    • 2017-11-21
    • 2020-01-14
    • 2016-08-30
    • 2015-05-21
    相关资源
    最近更新 更多