class LibraryClass:
def __init__(self):
self.y = 34
@property
def x(self):
return self._x
class MyClass:
pass
myObj = MyClass()
libraryObj = LibraryClass()
def myFunc(x: MyClass):
print("Got it")
myFunc(myObj) #Rightly UnFlagged
myFunc(34) #Rightly Flagged
myFunc(libraryObj.y) #Rightly Flagged
myFunc(libraryObj.x) #Wrongly Unflagged. The default return type is Any
在上面的代码中,用户功能myFunc应该只接受MyClass类型的参数x。但是,由于在PEP 484中如何定义“ Any”类型,因此“ Any”类型也被匹配(在最后一行)。是否有办法避免这种情况?
我知道这是设计使然; “任何”应该与任何签名匹配;如果“ Any”是显式定义的类型,这是有道理的,但是,在上述示例中,“ Any”来自库对象,因为它是函数的默认返回类型,因此,我。
谢谢