The functools module is for higher-order functions: functions that act on or return other functions. In general, any callable object can be treated as a function for the purposes of this module.

Instead of using lot of os.path.join This pattern is much more useful and more so if you want to use the path multiple times. Discovered this very recently and I am delighted to use this from now onwards

>>> import functools
>>> import os
>>> user_path = functools.partial(os.path.join, r"C:\Users\sukhbinder")
>>> print(user_path)
functools.partial(<function join at 0x00000169E056BCA0>, 'C:\\Users\\sukhbinder')
>>> d = user_path("Desktop")
>>> d
'C:\\Users\\sukhbinder\\Desktop'
>>> d = user_path("Desktop", "PROJECTS")
>>> d
'C:\\Users\\sukhbinder\\Desktop\\PROJECTS'
>>> d = user_path("Desktop", "PROJECTS", "winsay")
>>> d
'C:\\Users\\sukhbinder\\Desktop\\PROJECTS\\winsay'
>>> d = user_path("..","Desktop", "PROJECTS", "winsay")
>>> d
'C:\\Users\\sukhbinder\\..\\Desktop\\PROJECTS\\winsay'

Leave a comment

Trending