报错情况:
错误原因:自己忘了python中模块和函数的区别。也是在经常使用matlab后,转到python上应用时受matlab思维的影响。
正确调用方式:
在电力系统中计算潮流和节点电价的第三方库,在matlab中是matpower,在python的调用中是pypower。matpower和pypower只是用两种语言写成的同一种工具(matpower和pypower里面的函数几乎是一模一样的)。
在matlab的调用如下图所示,可以正常调用运行
但是在python调用时报错:
报错原因是自己忘了python中模块和函数的区别,在python中调用函数是先要导入模块(module)再选择导入的模块中的哪一个函数(function)。
而matlab中是没有这种差别的,因为在matlab中定义函数时函数名和文件名是要求一致的(记得matlab2012-2015版应该都有这要求,但是今天用2017a版的试了一下,发现并没有这个要求),否则(matlab2012-2015版)定义失败。
也就是说,python的一个module中可以有很多可以调用的function,但matlab的一个函数文件中只能有一个用来调用的function(函数文件里面只能有一个主函数,其它函数都是子函数,可以被主函数调用,但不能被其它脚本或函数文件调用)。
打开pypower中函数rundcopf的原码
打开matlab中函数rundcopf的原码
解决这种问题的办法(注意快捷提示中是module和function):
正确调用方式是: