我的代码中有不同的集合.有些持有对象(各种类型),其他有类型(如Long).
有没有办法检查Collection中是否包含适用于类型和对象的键?
到目前为止,我有两个功能.
第一个功能:
Private Function ContainsObject(objCollection As Object, strName As String) As Boolean
Dim o As Object
On Error Resume Next
Set o = objCollection(strName)
ContainsObject = (Err.Number = 0)
Err.Clear
End Function
Run Code Online (Sandbox Code Playgroud)
第二功能:
Private Function ContainsLong(AllItems As Collection, TheKey As String) As Boolean
Dim TheValue As Long
On Error Resume Next
TheValue = AllItems.Item(TheKey)
ContainsLong = (Err.Number = 0)
Err.Clear
End Function
Run Code Online (Sandbox Code Playgroud)
这两个函数的原因是如果我传递一个具有Longs对的Collection(函数总是返回False),ContainsObject似乎不起作用.
以下代码从 mypy 中产生一个可以理解但错误的错误:
from typing import List, Union, Any
class classA():
def __init__(self, name: str) -> None:
self.__name = name
def __eq__(self, other: Any) -> bool:
if (type(self) == type(other)):
return (self.name == other.name)
return False
@property
def name(self) -> str:
return self.__name
class classB():
def __init__(self, id: int) -> None:
self.__id = id
def __eq__(self, other: Any) -> bool:
if (type(self) == type(other)):
return (self.id == other.id)
return False
@property
def id(self) -> int:
return self.__id
class classC():
def …Run Code Online (Sandbox Code Playgroud)