Tig*_*gra 10 python restructuredtext docstring pycharm
:rtype:指定这是返回对象的类型
因此,当我obj在下面的代码片段中创建对象时,我收到来自IDE的警告cls is not callable,因为IDE期望,这cls是object类型的SomeAbstractClass,我想要SomeAbstractClass自己
IDE是对的,因为这是默认行为.但是我如何指定,我正在返回课程,而不是课程的实例?
指定type而不是SomeAbstractClass帮助,但不是解决方案,因为没有进一步的内省可用.
def class_selector(data):
"""
:rtype: SomeAbstractClass
:return: Return some class based on given parameters
"""
return get_from.get(data.name)
cls = class_selector(data)
obj = cls(data.more_data)
Run Code Online (Sandbox Code Playgroud)
同时我通过""":type: SomeAbstractClass"""在创建对象后添加来解决这个问题 ,但是这并没有取消警告并且它是脏的解决方案.
顺便说一句,谈论python 2.x.
小智 -4
如果数据是 SomeAbstractClass 的实例,则可以使用以下代码片段:
示例1:
def class_selector(data):
"""
return: Return the class of data
"""
return type(data)
Run Code Online (Sandbox Code Playgroud)
示例2:
def class_selector(data):
"""
return: Return the class of data.
"""
return data.__class__
Run Code Online (Sandbox Code Playgroud)
如果你想使用 data.name 来指定一个类,你可以使用这个:
def class_selector(data):
"""
return: Return a class specified by data.name
"""
return type(globals()[data.name]) #or use globals()[data.name].__class__
Run Code Online (Sandbox Code Playgroud)
当你使用这个时你应该捕获 KeyError 异常
| 归档时间: |
|
| 查看次数: |
2427 次 |
| 最近记录: |