从其他文件中获取函数

时间:2018-05-19 08:28:13

标签: python

所以我有这个函数,我通过多个文件使用,有没有办法把它变成一个保存在单独文件上的类,并在我的每个其他文件上调用它?

def count():

    for name in data:
        if name not in topUsers:
            topUsers[name] = 1
        else:
            topUsers[name] += 1

count()

2 个答案:

答案 0 :(得分:1)

  

有没有办法将其转换为保存在单独文件中的类   在我的每个其他文件上调用它?

例如:

# bar.py
class TopUserCounter(object):

    def __init__(self, top_users):
        self._top_users = top_users

    def count(self, user_names):
        for name in user_names:
            if name not in self._top_users:
                self._top_users[name] = 1
            else:
                self._top_users[name] += 1

    def get_top_users(self):
        return dict(self._top_users)


# foo.py
from collections import Counter

from bar import TopUserCounter


top_user_counter = TopUserCounter({'Alex': 4, 'John': 3})
top_user_counter.count({'Alex', 'Damon'})
print(top_user_counter.get_top_users())

top_user_counter_1 = Counter({'Alex': 4, 'John': 3})
top_user_counter_1.update({'Alex', 'Damon'})
print(top_user_counter_1)

答案 1 :(得分:1)

您不一定需要使用Class。您可以在一个文件中定义函数,然后将其导入到您正在使用的文件中。如果这两个文件位于同一文件夹中,这将是最简单的。

包含功能的文件,例如名为 func.py

# File called 'func.py' saved in a folder
def add(a, b):
    result = a + b
    print(result)

您正在处理的文件,例如名为 working_file.py

# File where the function should be used, placed in the same folder
import func         # This imports all functions contained inside 'func.py'

func.add(2, 3)      # Use the 'add'-function imported from 'func.py'

运行 working_file.py 将返回

5

如果您想键入add(2, 3)而不是func.add(2, 3),则必须将 func.py 中的import语句更改为from func import add,这只会导入特定的功能。

希望这可以解决它。