Non-Standard Optional Argument Defaults
optional-arguments, python
Solution
def f(a,b,c=None):
if c is None:
c = g(b)
If `None` can be a valid value for `c` then you do this:
sentinel = object()
def f(a,b,c=sentinel):
if c is sentinel:
c = g(b)
Problem
I have two functions: ``` def f(a,b,c=g(b)): blabla def g(n): blabla ``` `c` is an optional argument in function `f`. If the user does not specify its value, the program should compute g(b) and that would be the value of `c`. But the code does not compile - it says name 'b' is not defined. How to fix that? Someone suggested: ``` def g(b): blabla def f(a,b,c=None): if c is None: c = g(b) blabla ``` But this doesn't work. Maybe the user intended `c` to be None and then `c` will have another value.