Python Pyobjc如何访问带下划线前缀的objective-c方法

Python Pyobjc如何访问带下划线前缀的objective-c方法,python,objective-c,pyobjc,Python,Objective C,Pyobjc,我正试图通过Pyobjc访问以下Objective-C方法 [foo _bar] 不幸的是,这似乎给Pyobjc带来了一个问题,因为下划线通常被冒号替换,所以如果我在Pyobjc中使用以下内容 foo._bar_() 我得到一个错误,对象foo没有方法,即: Attribute Error: No Selector :bar: 那么如何正确地“转义”前缀下划线呢 Python端正确的方法调用应该是foo.\u bar(),但除此之外,不应该发生这种情况:>>导入objc>>>objc.\u

我正试图通过Pyobjc访问以下Objective-C方法

[foo _bar]
不幸的是,这似乎给Pyobjc带来了一个问题,因为下划线通常被冒号替换,所以如果我在Pyobjc中使用以下内容

foo._bar_()
我得到一个错误,对象foo没有方法,即:

Attribute Error: No Selector :bar:

那么如何正确地“转义”前缀下划线呢

Python端正确的方法调用应该是
foo.\u bar()
,但除此之外,不应该发生这种情况:
>>导入objc>>>objc.\uu version\uuuuuuuu'2.3.2a0'>>来自Cocoa import*>>a=NSArray.array()>>a.\u scriptingExists()0
领先的下划线处理在很多年前已经修复。你使用的是什么版本的PyObjC?我使用的是同一版本…非常奇怪。正如Josh提到的,正确的调用方法是“foo.\u bar()”(方法末尾没有下划线)。AttributeError中的名称是一个属性错误,因为“\u foo:”不存在。网桥尝试查找名称的其他变体,并在异常消息中使用最后一次尝试。