Сделайте
from time import time
t = time()
t
- пускают в ход число, хорошее для измерения временного интервала. существует некоторое различие для Unix и платформ Windows.
Используйте PyObjC.
Он включен в Leopard и более поздние версии.
>>> from Foundation import *
>>> a = NSArray.arrayWithObjects_("a", "b", "c", None)
>>> a
(
a,
b,
c
)
>>> a[1]
'b'
>>> a.objectAtIndex_(1)
'b'
>>> type(a)
<objective-c class NSCFArray at 0x7fff708bc178>
Он работает даже с iPython:
In [1]: from Foundation import *
In [2]: a = NSBundle.allFrameworks()
In [3]: ?a
Type: NSCFArray
Base Class: <objective-c class NSCFArray at 0x1002adf40>
`
Для вызова из Objective-C в Python необходимо Самый простой способ:
объявить абстрактный суперкласс в Objective-C, который содержит API, который вы хотите вызвать
создать заглушку реализации методов в @implementation
класса, подкласс класса в Python и предоставить конкретные реализации
создать фабричный метод в абстрактном суперклассе, который создает конкретные экземпляры подкласса
Т.е.
@interface Abstract : NSObject
- (unsigned int) foo: (NSString *) aBar;
+ newConcrete;
@end
@implementation Abstract
- (unsigned int) foo: (NSString *) aBar { return 42; }
+ newConcrete { return [[NSClassFromString(@"MyConcrete") new] autorelease]; }
@end
.....
class Concrete(Abstract):
def foo_(self, s): return s.length()
.....
x = [Abstract newFoo];
[x foo: @"bar"];