2016-01-22 77 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:]))