2016-01-22 73 views
-1

我有这样的代码最好的方式来写理解和Python友好代码

def testing1(terms, request): 
    dat = datetime.now(pytz.timezone(geo_timezone(request))) 
    __start = terms['year']+'-'+terms['month']+'-'+terms['day']+'T'+'00:00:00'+dat.strftime('%z')[:-2]+':'+dat.strftime('%z')[-2:] 
    __end = terms['year']+'-'+terms['month']+'-'+terms['day']+'T'+'23:59:59'+dat.strftime('%z')[:-2]+':'+dat.strftime('%z')[-2:] 
    return __start, __end 

testing({"month":12,"day":1, "year":"2015"}, request) 

但我有一个interrogant,什么是写这个代码,可读性和友好为其他编程人员的最佳方式?

对于像这样在一行中编写代码的任何建议?

这个建议是否可读?

def testing2(terms, request): 
     dat = datetime.now(pytz.timezone(geo_timezone(request))) 
     __start = terms['year'] + '-' + terms['month'] + '-' + terms['day'] + \ 
        'T' + '00:00:00' + dat.strftime('%z')[:-2] + ':' + dat.strftime('%z')[-2:] 
     __end = terms['year'] + '-' + terms['month'] + '-' + terms['day'] + \ 
       'T' + '23:59:59' + dat.strftime('%z')[:-2] + ':' + dat.strftime('%z')[-2:] 
     return __start, __end 

回答

0

唯一难以阅读的部分是你建立你的字符串的地方,所以我会使用.format()。这样你可以看到最终的布局,然后看到所有相应的条目。

__start = '{}-{}-{}T00:00:00{}:{}'.format(terms['year'], 
              terms['month'], 
              terms['day'], 
              dat.strftime('%z')[:-2], 
              dat.strftime('%z')[-2:]) 

__end = '{}-{}-{}T23:59:59{}:{}'.format(terms['year'], 
             terms['month'], 
             terms['day'], 
             dat.strftime('%z')[:-2], 
             dat.strftime('%z')[-2:]) 
0

你可以尝试这样的:

__start = ''.join([terms['year'], '-', 
        terms['month'], '-', 
        terms['day'], 'T', 
        '00:00:00', 
        dat.strftime('%z')[:-2], ':', 
        dat.strftime('%z')[-2:] 
        ]) 

括号,括号和大括号将帮助您保持代码的行< 80个字符 (这里的join方法string对象的更有效比运营商+

由于你的文章是关于编码风格,所以很难不提PEP8如果你不知道它已经。

0

就我个人而言,我会和第二块一起去,并且每天都会这么叫。如果你愿意,你可以尝试它对齐成团,或str.format()搞乱:

__start = terms['year'] + '-' + terms['month'] + '-' + terms['day'] + \ 
      'T00:00:00' + \ 
      dat.strftime('%z')[:-2] + ':' + dat.strftime('%z')[-2:] 
__end = terms['year'] + '-' + terms['month'] + '-' + terms['day'] + \ 
      'T23:59:59' + \ 
      dat.strftime('%z')[:-2] + ':' + dat.strftime('%z')[-2:] 

 

__start = ('{}-{}-{}'.format(terms['year'], terms['month'], terms['day']) + 
      'T00:00:00' + 
      '{}:{}'.format(dat.strftime('%z')[:-2], dat.strftime('%z')[-2:])) 
__end = ('{}-{}-{}'.format(terms['year'], terms['month'], + terms['day']) + 
      'T23:59:59' + 
      '{}:{}'.format(dat.strftime('%z')[:-2], dat.strftime('%z')[-2:]))