python - 如何为可以属于 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)
解决方案
您可以使用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
推荐阅读
- github - 如何通过 GitHub 存储库的 Web 界面防止提交
- git - github 会自动添加在 sublime 中创建的文件吗?
- javascript - 当另一个字段发生变化时更新一个字段 - Vue
- range - 尝试在 MIPS 中运行此代码,我收到一条错误消息,提示“0x00400090 处的运行时异常:地址超出范围 0x00000008”
- apache-kafka - Confluent Platform:Confluent Platform 和 Apache Kafka 版本之间的版本对齐
- python - 如何从字符串列表中检索部分匹配项
- python - 如何使用 Python 从 KML 服务器获取数据?
- python-3.x - GitHub Actions:无法使用 GitHub Actions 找到输入文件
- r - 生成新的唯一 ID 号,同时排除 R 中先前生成的 ID 号
- node.js - child_process.spawnSync() 中的 ENOENT 错误