块/数组中的Python存储操作/方法

时间:2017-04-02 06:19:46

标签: python objective-c

我是python的初学者,我试图在objective-c中写这样的东西。在Objective-C中,每个方法都可以存储在块中,稍后可以再次调用。我试图在网上找到但我不知道python中的关键字。我可以像在python中那样写,还是有类似的流程?我该怎么办?

void (^successBlock)() = ^{
    NSLog(@"Test");
};

NSMutableArray *muArr = [NSMutableArray array];
[muArr addObject:successBlock];

for (void (^successBlock)() in muArr) {
    successBlock();
}

3 个答案:

答案 0 :(得分:3)

函数是Python的一等成员。除了函数定义之外,不需要额外的语法。使用标准库函数和lambda函数(大致类似于块)来查看此示例。

functions = [round, int, str, lambda x: x + 2]

for fn in functions:
    print(fn(3.1415))
# 3
# 3
# 3.1415
# 5.141500000000001

答案 1 :(得分:1)

Python中的函数是一等公民,因此可以存储在变量中。

请参阅Assigning a function to a variable

def successBlock():
    NSLog("Test")

muArr = [successBlock]

for sb in muArr: 
    sb()

答案 2 :(得分:-1)

尝试此代码,它应该可以正常工作

void (^successblock)() = ^^{
    NSLog(@"Test");
};

NSMutableArray *mUArr = [NsMutableArray array];
[muArr addObject:successBlock];

for (void (^successBlock)() in muArr) {
    successBlock()
}