所以我有这个函数,我通过多个文件使用,有没有办法把它变成一个保存在单独文件上的类,并在我的每个其他文件上调用它?
def count():
for name in data:
if name not in topUsers:
topUsers[name] = 1
else:
topUsers[name] += 1
count()
答案 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
,这只会导入特定的功能。
希望这可以解决它。