bob*_*nto 1 python coding-style
需要一个意见.
我有一个定义一些数据的函数.我的想法是用户可以告诉它从文件中读取数据:
acquire_data('read_from_file',filename)
Run Code Online (Sandbox Code Playgroud)
或者用户可以直接提供数据:
acquire_data('use_this_list',datalist)
Run Code Online (Sandbox Code Playgroud)
所以函数会有类似的形式
def acquire_data(mode,arg2):
if mode == 'read_from_file':
inputs=open(arg2)
data = #etc.
else:
data = arg2 #or deepcopy(arg2) or whatever
Run Code Online (Sandbox Code Playgroud)
嗯,这有效,但似乎有点老套.特别是,"arg2"具有非常不同的功能,具体取决于"模式"的值.那么:这个好代码吗?这是"pythonic"吗?有人看到更好的方法来编码吗?谢谢.
def acquire_data(list_or_filename):
# assuming py3 here, for py2 use 'isinstance(list_or_filename, basestring)
if isinstance(list_or_filename, str):
with open(list_or_filename,"r") as f:
return acquire_data_from_file(f)
else:
return acquire_data_from_list(list_or_filename)
Run Code Online (Sandbox Code Playgroud)