Ich versuche, eine dict
aus einer Methode zu bekommen, bis jetzt bin ich in der Lage, den Methodennamen und seine Argumente zu bekommen (mit dem Inspect-Modul), das Problem, das ich vor mir habe, ist, dass ich möchte habe auch die Standardargumente (oder den Argumenttyp).Ein Diktat aus einer Methode herausholen?
Dieser im Grunde Test meiner Einheit ist:
class Test:
def method1(anon_type, array=[], string="string", integer=12, obj=None):
pass
target = {"method1": [
{"anon": "None"},
{"array": "[]"},
{"string": "str"},
{"integer": "int"},
{"obj": "None"}]
}
method1_dict = get_method_dict(Test().method1)
self.assertEqual(target, method1_dict)
Hier versuche ich die Methode zu bekommen inspizieren zu verwenden:
>>> import inspect
>>> class Class:
... def method(self, string='str', integer=12):
... pass
...
>>> m_desc = inspect.getargspec(Class().method)
>>> m_desc
ArgSpec(args=['self', 'string', 'integer'], varargs=None, keywords=None, defaults=('str', 12))
>>>
aber mein Problem ist mit dem Standard args, wie Sie hier sehen:
Wie Sie sehen, befindet sich die no_def_args
nicht in den Standardeinstellungen. Daher ist es ein Problem, das Argument mit den Standardargumenten abzugleichen.
ich nicht wusste, dass, wenn Sie dies nicht tun Ordnung deine Argumente ist ein Syntaxfehler, und ja ich weiß, wie man eine Liste schneidet, danke! – igorgue