On Sat, Jun 18, 2016 at 3:14 PM, Joel Goldstick <joel.goldst...@gmail.com> wrote: > On Sat, Jun 18, 2016 at 3:04 PM, boB Stepp <robertvst...@gmail.com> wrote:
>> Python 3.5.1 (v3.5.1:37a07cee5969, Dec 6 2015, 01:54:25) [MSC v.1900 >> 64 bit (AMD64)] on win32 >> Type "help", "copyright", "credits" or "license" for more information. >> py3: def d(row, col/2, radius=5): >> File "<stdin>", line 1 >> def d(row, col/2, radius=5): >> ^ >> SyntaxError: invalid syntax >> >> And this surprised me. It seems that only identifiers are allowed as >> parameters in a function definition statement, and I cannot help but >> wonder why? It seems that in most other places in Python's syntax it >> will allow one to insert almost any kind of object or expression. > I'll take a stab. The function is defined once. The parameters name > the arguments to be passed when the function is invoked. They can > have defaults, but you are asking it to perform a calculation, which > would only be done when the function is defined. In retrospect, I probably should have figured this out. I know that defaults to parameters are assigned at function definition time and that arguments only get passed at function call time. If I use an expression, at function definition time there is no value to assign. So as long as Python uses this mechanism for handling function definition, I now don't see how expressions can be usable as parameters. Thanks Joel! boB _______________________________________________ Tutor maillist - Tutor@python.org To unsubscribe or change subscription options: https://mail.python.org/mailman/listinfo/tutor