FAQ
>
金融建模
>
建模问题
>
平台使用
Q:关于用户函数与公用函数同名时,优先调用哪个函数?
复制链接
A:
1、如果执行的主函数是用户函数(无同名公用函数),其调用子函数时存在调用优先级:优先调用用户函数;
2、如果执行的主函数是公用函数(无同名用户函数),其调用子函数时存在调用优先级:优先调用用户函数;
3、如果执行的函数有同名的公用函数和用户函数,提交执行函数时,会标记执行的账号名,其调用的子函数也同样会标记该账号名。
执行的主函数是同名用户函数时,调用的子函数也会优先调用用户函数。被调用函数不存在用户函数时,再调用公用函数。
执行的主函数是同名公用函数(system账号)时,调用的子函数仅会调用公用函数。如果被调用的子函数不存在公用函数,则会报错提示被调用的子函数不存在。可以通过user("用户名").子函数()的方式来指定调用用户账户下的子函数,解决该问题。
如果执行的主函数是用户函数,调用子函数存在同名公用函数和用户函数,由于默认调用用户函数,可以采用上述方法,通过user('system').子函数()方式调用同名公用函数
例如:fun1(主函数)调用fun2(子函数).
情景一:fun1只有用户函数,fun2仅存在公用函数。
执行fun1(用户函数),会调用到fun2(公用函数)。
情景二:fun1只有用户函数,fun2存在同名公用函数和用户函数
执行fun1(用户函数),会调用到fun2(用户函数)。
情景三:fun1 仅有公用函数,fun2只有用户函数
执行fun1(公用函数),会调用到fun2(用户函数)。
情景四:fun1仅有公用函数,fun2 既有公用函数,又有用户函数,
1、执行fun1(公用函数),优先调用fun2(用户函数)。
情景五:fun1存在同名公用函数和用户函数,fun2 仅有公用函数
1、执行fun1(公用函数),会调用到fun2(公用函数)。
2、执行fun1(用户函数),会调用到fun2(公用函数)。
情景六:fun1存在同名公用函数和用户函数,fun2 仅有用户函数
1、执行fun1(公用函数),调用报错:不存在fun2函数。可以通过user("用户名").fun2()的方式来指定调用用户账户下的fun2,解决该问题。
2、执行fun1(用户函数),会调用到fun2(用户函数)。
情景七:fun1存在同名公用函数和用户函数,fun2 存在同名公用函数和用户函数
1、执行fun1(公用函数),会调用到fun2(公用函数)。
2、执行fun1(用户函数),会调用到fun2(用户函数)。