Une fonction à un seul paramètre peut être écrit comme ceci:
import datetime
def func1(mydate):
frmt = '%d-%m-%Y'
return datetime.datetime.strptime(mydate, frmt)
def func2(str):
frmt = '%d-%m-%Y'
return datetime.datetime.strptime(str, frmt)
# test
todaysdate = "28-10-2019"
print(func1(todaysdate) == func2(todaysdate))
3 Réponses :
Python ne vous empêche pas de "ombrage" Types d'objets intégrés pour les noms de variables. Ce n'est pas recommandé bien sûr. Cependant, vous créez simplement une variable avec le nom str code>. P>
Je vais mettre cela dans une réponse au lieu de laisser mon commentaire mais juste pour ajouter de l'autre réponse. Vous n'allez pas passer un type à votre fonction, vous écrasez un type intégré. Bien que Python le permet, vous ne devriez pas le faire. Cela mènera à la confusion et à des erreurs sur la route.
def func(my_str):
print(my_str) # prints test
print(str(2)) # prints 2
func('test')
import datetime
def func1(mydate):
frmt = '%d-%m-%Y'
return str(datetime.datetime.strptime(mydate, frmt))
def func2(str):
frmt = '%d-%m-%Y'
return str(datetime.datetime.strptime(str, frmt))
# test
todaysdate = "28-10-2019"
print(func1(todaysdate) == func2(todaysdate))
this program gives you overview of the error by overriding str() function.just see monkey patching concept in python.
https://www.geeksforgeeks.org/monkey-patching-in-python-dynamic-behavior/
Def Func2 (STR): CODE> Ceci est valide mais non recommandé. Vous n'en passez pas de typecode>. Vous dites la variable que vous passez a le nomstr code> vous écrasez donc l'objet réservéstr code>. Essayez de fairestr (2) code> dansFunc2 code> et vous verrez ceci.