J'ai une question sur mon code ou PyCharm IDE sur MacBookType attendu '{__name__}', a '() -> Aucun' au lieu
j'ai écrit une fonction Python (3.6) en utilisant "timeit" pour tester le temps passé par d'autres fonctions
def timeit_func(func_name, num_of_round=1):
print("start" + func_name.__name__ + "()")
str_setup = "from __main__ import " + func_name.__name__
print('%s() spent %f s' % (func_name.__name__,
timeit.timeit(func_name.__name__ + "()",
setup=str_setup,
number=num_of_round)))
print(func_name.__name__ + "() finish")
paramètre
« func_name » est juste un besoin de fonction à tester et a déjà été défini. et j'appelle cette fonction avec le code
if __name__ == "__main__":
timeit_func(func_name=another_function)
la fonction fonctionne bien, mais PyCharm montrent l'info avec ce code "func_name = another_function":
Expected type '{__name__}', got '() -> None' instead less... (⌃F1 ⌥T)
This inspection detects type errors in function call expressions. Due to dynamic dispatch and duck typing, this is possible in a limited but useful number of cases. Types of function parameters can be specified in docstrings or in Python 3 function annotations
J'ai googlé « type attendu '{nom}', got '() -> None "mais n'a rien d'utile.Je suis nouveau sur Python. Je veux demander ce que cela signifie? Et comment puis-je laisser cette information disparaître? parce que maintenant il est mis en évidence et laissez-moi me sentir mal à l'aise.
Je l'utilise dans Python3.6 par import time
, ce que je trouve dans le doc du module timeit() (timeit.timeit()
)
def timeit(stmt="pass", setup="pass", timer=default_timer, number=default_number, globals=None):
"""Convenience function to create Timer object and call timeit method."""
return Timer(stmt, setup, timer, globals).timeit(number)
Qu'est-ce que la fonction 'timeit.timeit()' ..? –
Il s'agit d'un [problème] connu (https://youtrack.jetbrains.com/issue/PY-21408) que les fonctions ne correspondent pas au type '{__name __}'. – user2235698