3 ms·
CoffeeScript has a nice syntactic sugar for setting properties by prefixing the argument name with "@": class Foo constructor: (@x, @y) -> @z = @x
by nadaviv 13y ago
CoffeeScript has a nice syntactic sugar for setting properties by prefixing the argument name with "@":
class Foo
constructor: (@x, @y) ->
@z = @x + @y
setFoo: (@foo) ->
Which compiles to: http://coffeescript.org/#try:class%20Foo%0A%20%20constructor%3A%20(%40x%2C%20%40y)%20-%3E%0A%20%20%20%20%40z%20%3D%20%40x%20%2B%20%40y%0A%20%20setFoo%3A%20(%40foo)%20-%3E http://coffeescript.org/#try:class%20Foo%0A%20%20constructor...
- solox3 13y agoInteresting you mentioned CoffeeScript and syntactic sugar, because adding an equivalent "self." in python inits' parameter names doesn't work the same way in CoffeeScript. def __init__(self, self.x, self.y): # fail pass Did you mention this because there is an existing PEP that proposes this functionality?
- nadaviv 13y agoNo, I just thought the way CoffeeScript handles it is pretty slick. I looked around, and it seems like proposals to add something like this to Python did come up [1] [2], but weren't very welcomed. [1] https://mail.python.org/pipermail/python-dev/2005-July/054568.html https://mail.python.org/pipermail/python-dev/2005-July/05456... [2] http://bytes.com/topic/python/answers/101594-__autoinit__-proposal-reducing-self-x-x-self-y-y-self-z-z-boilerplate-code http://bytes.com/topic/python/answers/101594-__autoinit__-pr...