-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA512
On 16.06.2015 01:57, Steven D'Aprano wrote: > Alternatively, I can use a flag set on the function object itself: > > edir.dunders = False > > > Naturally you can always override the default by explicitly > specifying a keyword argument edir(obj, dunders=flag). > > Thoughts and feedback? Please vote: a module global, or a flag on > the object? Please give reasons, and remember that the function is > intended for interactive use. I like a flag on the object, and this would be my implementation: ``` def edir_impl(): # implementation of edir pass class Edir(object): def __init__(self): self.kwargs = {} def __getattr__(self, name): return self.kwargs[name] def __setattr__(self, name, value): self.kwargs[name] = value def __delattr__(self, name): del self.kwargs[name] def __call__(self, *args, **kwargs): kwargs_to_use = self.kwargs.copy() kwargs_to_use.update(kwargs) edir_impl(*args, **kwargs_to_use) edir = Edir() ``` (untested, but you get the idea, hopefully) This also allows to have several versions of edir around in a shell with different default settings. regards, jwi -----BEGIN PGP SIGNATURE----- Version: GnuPG v2 iQIcBAEBCgAGBQJVf/PLAAoJEMBiAyWXYliKFM4P/jf/ZDZFacrRuk29tNzNFjA2 6UT4GURF6UX+C129gGgaqxpDY9oD9herfUpqbFxfNWq4Rye9MX+xkv3uQUsP5BXE G7VjrSC0qd1GmdwFxdIQEb1fa6LgMmOnnYe/sIw5XWF2Rtbkqlisw7ZO3YDsWT9d cadoEh0ShFbM6z4MUDEd8tu6RQ/j61v906TwsVgY+4uI8WWOzqHumM7pkWHxP2ns 3b/2ijQJNNLwH3UfbPBo3YhJWt0c+ACzuxr5MamVHUJBZpNatcszti3mkn2CtDCb m5Kc0gO0RxHVaHV4RWrjYlcllhysQ/zeAuOz1PHEqevlitj8z1cBy3p4sfz8GOZe XAKChaZHVAq7eTGzgtLksBQ0dujLxy9zLWiHfeLfMnTyZoYFKVCM2rlSYutnkI0f 7VdaaKStVpqkXeJHX1n1LvHBOroQCFtUFn2F0FylpR/nBA7ar9epZYiCWbrb21xO DYs8T7dC7DI1waLeXJ2JbXiXqh6cQ9Fy86fm+VE1lmkJ6LvboRCN9eWMQ1o1+RtM Dla6CvH2zxgW2u3HZCIoU9TusYaNLR9kSxqCMc2yLuMiUQpj0HfjZCR+ZP2/9phS wx+qZx+5X25ybXlCZRtlvzb409BclOJ7JOynboX4MU4M9sSCPJhb5/ZcM79r7nJa o0y06nE5eReu71TMwmDW =r9uV -----END PGP SIGNATURE----- -- https://mail.python.org/mailman/listinfo/python-list