从当前python文件中的另一个python文件中获取某些函数的副本。[不仅仅是从另一个源文件调用函数]

2024-09-28 23:48:01 发布

您现在位置:Python中文网/ 问答频道 /正文

路径:-d:\competitive\u programming\
文件夹内容:-algorithms.pymy_submittion.py

algorithms.py包含有用的函数,如:-Function1(a,b)Function2(),等等

在本地工作时我可以在my_submittion.py中使用algorithms.py中的函数,使用:-

from algorithms import Function1, Function2
processed_number = Function1(x, y)

但是,如果我将其(my_submittion.py)移动到另一个文件夹或将其用作我的提交(在codeforces/topcoder上),则相同的代码将不起作用。 为了实现这一点,我必须对代码(在my_submittion.py)进行如下更改:

def Function1(a, b):
    ...

processed_number = Function1(x, y)

也就是说,我必须手动将Function1()从algorithms.py复制到my_submittion.py,然后我将能够在不同的文件夹中使用该脚本文件,或者将该文件用作我的提交文件(在topcoder或codeforces上)

我的问题是:-
如何跳过将特定函数从一个python文件手动复制到另一个python文件的过程?
python中是否有任何内置函数可以帮助我完成该任务,最好是:-

class_or_function_copier(path_to_file, function1[, function2[, function3[,...])

# path_to_file = algorithms  (or d:\competitive_programming\algorithms.py)
# function1 = Function1
# function2 = Function2

'''
class_or_function_copier() automatically copies specified function(s) or class(es)
from a give source file to current file
'''

processed_number = Function1(x, y)

第一次运行后,它可能会自动创建对my_submittion.py的更改,并使其:

def Function1(a, b):
    ...

processed_number = Function1(x, y)

=========================
可能与C/Cpp中的链接器类似,它可以从多个源文件生成最终可执行文件:-

cd "d:\competitive_programming\" ; if ($?) { gcc algorithms.c my_submittion.c -o submittion_file } ; if ($?) { .\submittion_file }

到目前为止,我已经编写了一个python脚本来消除手动处理部分,但如果有任何内置函数(如果有的话)这样做,它将非常有用


Tags: or文件函数py文件夹numbermyfile
1条回答
网友
1楼 · 发布于 2024-09-28 23:48:01

您只需将algorithms.py目录添加到您的路径,然后将您想要的任何函数从它导入到另一个脚本。在my_submittion.py的顶部尝试以下操作:

import sys
sys.path.append('/path/to/algorithms.py/') # e.g. 'D:/competitive_programming/'

from algorithms import Function1, Function2

相关问题 更多 >