我正在尝试第一次编辑python脚本,它让我发疯:(。
我有一些带* .py文件的目录,我将其添加到PyCharm作为解释器路径,以便正确自动完成。
所以,我有一些课
class Sim():
def __init__(self, *args, **kwargs):
self._sim_info = None
我是Java和C ++程序员,我习惯于类类型变量。
我知道,在脚本中,此变量的值为SimInfo
。
但是,当PyCharm的索引器索引* .py文件时,他知道Sim.sim_info
var的值为None
。但是如何在代码
s1=Sim()
i=s1.sim_info
变量i
的类型为SimInfo
?
可能我应该使用类似“编辑器点击”的内容来强制i.is_ghost
自动完成?
例如,代码
from simulation.sims.sim import Sim
from simulation.sims.sim_info import SimInfo
from simulation.sims.pregnancy.pregnancy_tracker import PregnancyOffspringData
s1=Sim()
i=s1.sim_info
i.is_ghos
其中i.is_ghos
必须自动完成i.is_ghost()
。
如何在这种情况下指定变量类型(可能是通过编辑器提示之类的东西)?
非常感谢!
答案 0 :(得分:1)
Python 3.6:
class Sim():
def __init__(self, *args, **kwargs):
self._sim_info: SimInfo = None
其他python:
class Sim():
def __init__(self, *args, **kwargs):
self._sim_info = None # type: SimInfo
它呼叫" type hints"
答案 1 :(得分:0)
您可以使用@type docstring将type hinting与pycharm一起使用。
def __init__(self, *args, **kwargs):
# n.b., in your usage code you use `.sim_info`
# but in your constructor you used `._sim_info`
# since I didn’t see a prop get function, I assumed
# that you meant `.sim_info`
self.sim_info = None
"""@type: SimInfo"""
或
def __init__(self, *args, **kwargs):
self.sim_info = None
""":type SimInfo"""
如果只是类名不起作用,您还可以指定类的完整路径,包括模块。您还可以在PyCharm中使用PEP484来指定成员变量的类型:
def __init__(self):
self.sim_info = None # type: SimInfo