Python keywords

Je pense que je ne comprend pas vraiment bien l’utilisation des keywords en python.
L’idée de mon bout de code est d’ajouter à une date start, un nombre roll_period de quantité roll_duration (mois, jours, années, semaines)
j’utilise pour cela dans la librairie dateutil la classe relativedelta dont l’utilisation est la suivante :

[quote]There’s two different ways to build a relativedelta instance. The
first one is passing it two date/datetime classes:

relativedelta(datetime1, datetime2)

And the other way is to use the following keyword arguments:

year, month, day, hour, minute, second, microsecond:
    Absolute information.

years, months, weeks, days, hours, minutes, seconds, microseconds:
    Relative information, may be negative.[/quote]

Dans mon code, end1=start+relativedelta(months=+roll_period) fonctionne bien, mais est-il possible de passer en argument de relativedelta roll_duration qui est égal à months ici ?

[code]import unittest
from dateutil.relativedelta import *
from datetime import *

class Test(unittest.TestCase):

def testdateutil(self):
    start=datetime(2007,6,12)
    roll_duration="months"
    roll_period=6
    end1=start+relativedelta(months=+roll_period)
    end=start+relativedelta(None, None,0, 6)
    #end1=start+relativedelta(roll_duration=+6)
    print(end,end1)
    assert(end,end1)

if name == “main”:
#import sys;sys.argv = [’’, ‘Test.testdateutil’]
unittest.main()[/code]

J’ai mis du temps à comprendre. Tu as une méthode que tu utilise avec des paramètres nommés et tu voudrais que les noms soient des variables.

Je ne crois pas que ce soit possible (en fait je pense que syntaxiquement c’est pas faisable). C’est l’avantage de passer par dictionnaire (même si les dictionnaires sont moins agréables à lire).