如果我在python函数中创建一个列表并将其返回给调用者,垃圾收集如何在该列表上工作?我是否必须做任何事情以防止发生内存泄漏?
例如:
#!/usr/bin/python
import random
class Example:
def f1(self):
list = []
len = random.randint(0, 30)
for i in range (0, len):
list.append(random.randint(0, 65536))
return list
random.seed(None)
e = Example()
while (1):
l = e.f1()
Run Code Online (Sandbox Code Playgroud)
这会导致内存泄漏吗?f1()中的'list'是否始终具有适当的引用计数?f1()的调用者是否必须做任何事情来防止内存泄漏?调用者应该在列表上做del()还是什么?
适用于iPad和iPhone的iOS是否支持解析器?特别是,lex/yacc或flex/bison可用于iOS开发吗?xcode4是否有本机支持的库?(我可以通过lex/yacc生成我的语法,然后获取*.c文件并将它们放入我的项目中,但我希望有更严格支持的库.)
有任何想法吗?
我希望能够使用a 从C程序char *function_name = "foo"调用foo().该foo()程序将在一个共享库.我没有访问任何dlopen等,只是常规可执行文件的加载步骤.有没有办法解析此名称并从共享库加载它?
关于这个主题有几个问题,但它们似乎都没有具体回答这个问题.
如果我有模式p='([0-9]+)(,([0-9]+))*'并且s='1,2,3,4,5'我运行m = re.match(p, s, 0)我得到一个匹配(如预期的那样).但是,我希望能够打印列表('1', '2', '3', '4', '5').我似乎无法用re.match输出做到这一点.它给了我('1', ',5', '5').
另外,我如何获得匹配数量(在这种情况下为5)?