[Pythonmac-SIG] objc methods to pythonese
Zachery Bir
zbir at urbanape.com
Thu Mar 23 21:11:50 CET 2006
On Mar 23, 2006, at 2:53 PM, Scott Frankel wrote:
> Apologies in advance for this tangential question.
>
> I'm trying to wrap my head around how Objective-C methods are
> constructed -- and more importantly, how they're converted to Python
> methods. Doco I've found uses as an example a method with white
> space between the parts of the method name. Working with Python has
> made me gun shy with respect to white space ;)
>
> Is the white space syntactically significant? i.e.:
>
> [rectangle setWidth:width height:height];
> ^
>
> If I understand correctly, this would translate in Python to:
>
> rectangle = setWidthheight_(width, height)
>
> Correct that the 'h' in the "height" part of the method name is not
> capitalized?
You're not assigning the result of that method to 'rectangle'. You want:
rectangle.setWidth_height_(width, height)
each ':' gets replaced in the python signature with an underscore,
and 'rectangle' is the object you're calling setWidth:height: on.
> How about the following?
>
> - (id)tableView:(NSTableView *)tableView
> objectValueForTableColumn(NSTableColumn *)tableColumn
> row:(int)row
>
> Would this translate like so?
>
> def tableViewobjectValueForTableColumnrow_(tableView,
> tableColumn, row):
That is a method declaration, not a function - don't forget 'self':
def tableView_objectValueForTableColumn_row_(self, tableView,
tableColumn, row):
Zac
More information about the Pythonmac-SIG
mailing list