首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > perl python >

可否在类中调用外部函数呢

2013-07-04 
能否在类中调用外部函数呢?我有个小程序,面向过程编程,在main()函数中执行所有动作. 现在我需要增加一个类

能否在类中调用外部函数呢?
我有个小程序,面向过程编程,在main()函数中执行所有动作.
 现在我需要增加一个类(PyQt),在类中在调用外面的main(),请问可以调用不?如何调用?
[解决办法]
首先,一个c或c++程序只能有一个main函数,所以你原来的小程序需要改一下:把主要功能分离出来放到另一个单独的文件中。

要使用分离出来的功能函数,通过include它所在的文件或相应的头文件来实现。

再具体的细节可参看c/c++教材有关include,header file等的部分。
[解决办法]
两个办法:

1. 把你的程序用重新用python实现,如果你的程序简单而且对性能没有特别的需求的话,建议选这个办法。

2. python程序中也可以调用c写的函数,但你还是需要先把函数实现放到main以外的函数中(或者直接把main改个名也可以),然后用python的ctypes模块调用它。这儿有个例子,你也可以搜索“python ctypes”找到更多信息。

ctypes的应用:http://www.kuaidianbo.com/bianchengyuyan/Python/20121208/phpwdw_2655.html
[解决办法]
你的小程序用啥写的?
python的话,把你的小程序中的if __name__ == '__main__': 这一行注释掉,封装个函数或类,在pyQt类调用。
C的话,1是改写为python,2是编译成动态库或可执行文件,在pyQt中调用,可参考http://blog.csdn.net/dyx1024/article/details/7273514
[解决办法]
不知道你是什么类 或是原来的main函数是否为单线程的
pyqt也不是一个类 而是多个类的集合 你如果要调用里面的GUI部分 则需要注意 PyQt的GUI是必须在主线程里的 也就是说 必须在你原来的main的线程里

热点排行