首页 > 解决方案 > 如何为可以属于 A 类或 B 类的参数编写类型提示?

问题描述

我想把一个对象作为函数的参数值。 anything_object可以是A类或B类。

class A:
    name: str

class B:
    phone: int

class ObjectInfo
    def __init__(self) -> None:
        pass
    
    def getObjectFieldName(self, anything_object: ?) -> list:
        return dir(anything_object)

标签: pythontype-hinting

解决方案


您可以使用Union指定多个类型提示(参数和返回类型)。您必须Union从标准库中导入typing

from typing import Union

class A:
    def __init__(self, name) -> None:
        self.name = name

class B:
    def __init__(self, name) -> None:
        self.name = name 


class ObjectInfo:
    def __init__(self) -> None:
        pass 

    def method(self, object:Union[A, B]=None) -> list:
        return dir(object)

obj = ObjectInfo()
print(obj.method())

[外部链接]
更多关于类型提示:https ://docs.python.org/3/library/typing.html


推荐阅读