On Sat, Jun 18, 2016 at 02:04:46PM -0500, boB Stepp wrote: > I have (Finally!) gotten a bit of time to look at Peter's answer to my > Model-View-Controller question from May 29th, particularly his > CircleImageView class to which he added a "#FIXME" comment. I thought > it would be helpful to abbreviate his distance function in the > interpreter while I played around with pencil and graph paper. I got: > > 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.
I'm surprised that you're surprised. I don't even know what you expect a parameter col/2 would even mean. > It seems that only identifiers are allowed as > parameters in a function definition statement, and I cannot help but > wonder why? Because they are parameters, which by definition are variable names, i.e. identifiers. What else could they be? def foo(x, 1+2, y): # how do I refer to the second parameter here? foo(1000, 2000, 3000) # what happens to the second argument here? Can you explain what you expected def d(row, col/2) to mean? I have literally no idea. > It seems that in most other places in Python's syntax it > will allow one to insert almost any kind of object or expression. You can't use arbitrary expressions on the left hand side of assignment: 1 + 2 = "some value" x/2 = y Function parameters are a form of assignment. -- Steve _______________________________________________ Tutor maillist - Tutor@python.org To unsubscribe or change subscription options: https://mail.python.org/mailman/listinfo/tutor