如何为可以是类A或类B的参数编写类型提示?

2024-10-06 06:54:06 发布

您现在位置:Python中文网/ 问答频道 /正文

我想把一个对象作为函数的参数值。 anything_object可以是一个类或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)

Tags: 对象函数nameselfnoneobjectinitdef
1条回答
网友
1楼 · 发布于 2024-10-06 06:54:06

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

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

相关问题 更多 >