如果我有这样的功能
def get_time_format(value, time):
for item in value:
time.append(datetime.strptime(str(item),'%H').strftime('%I%P').lstrip('0').upper())
return time
例如,上面的函数我在不同的模块中使用,可以代替代码重复,可以将其放在单独的文件中并在需要它们的模块中调用它们。
第二部分与第一部分有关,所以如果我很少有几行通用的代码。我可以创建一个包含所有通用代码行的文件吗?
hierarchy:-
hello.py
hello.py/ds/a.py
hello.py/ds/b.py
hello.py/ds/c.py
hello.py/ds/d.py
hello.py
是我的主文件,a,b,c and d
是模块。
有人可以告诉我在哪里可以创建文件来共享模块1和2中要求的通用代码。我是python的新手,并且是第一次使用这些模块。
答案 0 :(得分:0)
将该功能另存为任何目录中的example.py
文件。示例home/ubuntu/Desktop
现在,在任何代码中使用以下代码段即可使用该功能
import sys
sys.path.insert(0, 'home/ubuntu/Desktop')
import example as eg
eg.get_time_format(value, time)
您可以在example.py
中定义多个函数,例如get_time_format(value,time)foo(x,y)bar(x,y),如要使用它们,只需键入eg.foo(x,y)
eg.bar(x,y)
答案 1 :(得分:0)
我建议为此使用一个包装。参见buran's comment
只需创建一个目录来放入您的代码,然后包含一个__init__.py文件。 __init__.py是一个特殊文件,它告诉python将目录标记为python包,从而使其可导入。参见What is __init__.py for?。
注意:由于__init__.py是标记文件,因此通常只是一个不包含任何代码的空文件。
然后您可以执行以下操作:
# structure
my_directory
-/__init__.py
-foo.py
# foo.py
def bar(boo):
print(boo)
随后将函数导入其他模块或交互式shell中,如下所示:
from foo import bar
bar('ble')
>>>> ble
这具有附加的优点,允许在程序包目录之外工作时导入:
from my_directory.foo import bar
bar('boo')
>>>>boo
或完整导入的foo:
from my_directory import foo
foo.bar('boo')
>>>>boo
答案 2 :(得分:0)
在子文件夹ds中创建 init.py
,然后从此初始化文件中的a,b,c,d导入所有函数。那么可以将ds导入hello.py并使用a〜d中定义的所有功能。