On Tue, Mar 27, 2018 at 11:00 PM, Rick Johnson <rantingrickjohn...@gmail.com> wrote: > On Tuesday, March 27, 2018 at 1:55:01 AM UTC-5, Gregory Ewing wrote: >> Chris Angelico wrote: >> > Question: How do you get a reference to a Ruby function? Or are they >> > not first-class objects? >> >> They're not first-class. So, you can't. > > If Chris means: "how do you get a reference to a Ruby > function object", then yes, it _is_ possible! Consider the > following: > > ## Ruby 1.9 ## > rb> def print_name(name); puts "Your name is #{name.inspect}"; end > rb> print_name("Chris") > "Chris" > > In this case, since the function `print-name` was defined > outside of an class definition, Ruby will add the function > as a method of `Object` (Ruby is more purist about OOP than > Python). So, to get a reference to the function object > (which is now a method of `Object`!), all we need to do is > call a method named "method" ("gigity") and pass it the name > of the method as a string: > > rb> Object.method("print_name") > #<Method: Class(Object)#print_name> > rb> Object.method("print_name").call("Meathead") > Your name is "Meathead" > > PS: Greg, please inform Chris that Google is his friend. ;-)
Cool, so Greg was right: you can't get a reference to a method or function. You need magic to simulate it. ChrisA -- https://mail.python.org/mailman/listinfo/python-list