PyCharm中具有类型提示的自动补全功能,用于特定类型的列表

时间:2018-10-12 06:13:54

标签: python python-3.x pycharm type-hinting

This answer显示了如何在PyCharm中为列表使用类型提示。但是是否可以暗示PyCharm列表中存在哪些对象?我知道python中的列表可以具有不同类型的对象。但是仅出于自动补全的目的,我想要这个。像假设的一样,如果我的list中的numpy.ndarraysobj_list[0].,那么我可以暗示一下,当我执行numpy.ndarray时,PyCharm会为我自动填充 $insert_on_duplicate_update_query = "INSERT INTO test (`store_client_id`,`customer_id`,`first_name`,`last_name`,`email`,`created_on`,`updated_on`,dob) VALUES('1','123','abc','xyz','abc@hotmail.com','2018-10-12 00:00:02','2018-10-12 00:00:02','NULL') ON DUPLICATE KEY UPDATE `store_client_id`='1',`customer_id`='123',`first_name`='abc',`last_name`='xyz',`email`='abc@hotmail.com',`updated_on`='2018-10-12 00:00:02',dob='null';"; $insert_on_duplicate_update_query = str_replace(array("'NULL'","'null'"), null, $insert_on_duplicate_update_query); echo $insert_on_duplicate_update_query; 吗? 谢谢

1 个答案:

答案 0 :(得分:3)

Pycharm确实对此提供了一些支持,但目前尚不完善(我正在使用版本2018.2.4)。

对于大多数类型,它都能很好地工作(已测试内置类型和一些简单的自定义类):

# hint type in function document:

def func(a):
    """
    :param a:
    :type a list[str]
    :return:
    """
    a[0]   # will autocomplete 

# another way, use `typing` module
from typing import List
def func(a: List[str]):
    a[0]   # will autocomplete

不幸的是,这两种方法现在都不适用于numpy类型。 Pycharm将抱怨cannot find reference ndarray in __init__.py