您尚未登录。

#1 2017-02-15 10:59:01

alexxey
会员
注册时间: 2016-12-28
帖子: 73

行宽不得超过80个字符...大家都是怎么处理的?

如果不绞尽脑汁缩短名字,很容易超过这一限制
考虑到可读性和 'names should be self-documenting',缩写还不能太猛。
例如这一行

class ChildClass(somemodule.ParentClass):
	def __init__(self):
		somemodule.ParentClass.__init__(self, arg1=default, arg2=default, arg3=default)

再加上缩进,很容易超过这一限制

要么设法缩短,要么分行,关键是要保持美观。
有什么好思路么?

最近编辑记录 alexxey (2017-02-15 11:22:31)

离线

#2 2017-02-15 11:22:22

Remilia
RemiliaForever
注册时间: 2016-03-14
帖子: 49
个人网站

Re: 行宽不得超过80个字符...大家都是怎么处理的?

class ChildClass(somemodule.ParentClass):
	def __init__(self):
		somemodule.ParentClass.__init__(self, 
						arg1=default,
						arg2=default,
						arg3=default)

最近编辑记录 Remilia (2017-02-15 11:32:43)

离线

#3 2017-02-15 13:13:16

Mr.I
路人丙
所在地: Kerbal
注册时间: 2015-08-29
帖子: 308

Re: 行宽不得超过80个字符...大家都是怎么处理的?

大多数情况下都是像楼上这样的参数写多行,碰到比较长的链式调用我经常会这样写

def foo():
       object.long_function_name()\
                   .long_function_name()\
                   .long_function_name()\
                   .long_function_name()

另外,好像code标签里的字体不是等宽的诶?我多打了好多空格才把排版打对了

最近编辑记录 Mr.I (2017-02-15 13:26:51)

离线

#4 2017-02-15 13:15:26

SilverRainZ
成为非人类
所在地: Arch Linux CN Community
注册时间: 2015-05-01
帖子: 110
个人网站

Re: 行宽不得超过80个字符...大家都是怎么处理的?

还可以考虑只缩进两个空格(或者把 tab 的宽度设为两个空格)。

离线

#5 2017-02-15 18:49:48

依云
会员
所在地: a.k.a. 百合仙子
注册时间: 2011-08-21
帖子: 8,384
个人网站

Re: 行宽不得超过80个字符...大家都是怎么处理的?

class ChildClass(somemodule.ParentClass):
  def __init__(self):
    somemodule.ParentClass.__init__(
      self, arg1=default, arg2=default, arg3=default)

我不喜欢像 Remilia 那样缩进,感觉右边会太重,左边空那么多又浪费空间。

离线

#6 2017-02-15 18:51:52

依云
会员
所在地: a.k.a. 百合仙子
注册时间: 2011-08-21
帖子: 8,384
个人网站

Re: 行宽不得超过80个字符...大家都是怎么处理的?

mgna17 说:

大多数情况下都是像楼上这样的参数写多行,碰到比较长的链式调用我经常会这样写

def foo():
       object.long_function_name()\
                   .long_function_name()\
                   .long_function_name()\
                   .long_function_name()

另外,好像code标签里的字体不是等宽的诶?我多打了好多空格才把排版打对了

是用的等宽字体,但是空格好像宽度不一样……

离线

#7 2017-02-15 20:24:46

alexxey
会员
注册时间: 2016-12-28
帖子: 73

Re: 行宽不得超过80个字符...大家都是怎么处理的?

谢谢大家提供思路,看来只能在参数换行、缩进上下工夫了!
而且,如果光是“        somemodule.ParentClass.__init__(”这一部分就已经超过80字符,这就尴尬了。尤其是:
1. 有2-3层缩进
2. 模块名、类名很长

最近编辑记录 alexxey (2017-02-15 22:15:33)

离线

#8 2017-02-15 23:20:14

Mr.I
路人丙
所在地: Kerbal
注册时间: 2015-08-29
帖子: 308

Re: 行宽不得超过80个字符...大家都是怎么处理的?

依云 说:

是用的等宽字体,但是空格好像宽度不一样……

不对诶,字母也不等宽 hmm 依云大大,你上面发的那段代码里的 m 比self的 e 和 l 拼起来还要宽

最近编辑记录 Mr.I (2017-02-15 23:26:06)

离线

#9 2017-02-16 12:36:07

依云
会员
所在地: a.k.a. 百合仙子
注册时间: 2011-08-21
帖子: 8,384
个人网站

Re: 行宽不得超过80个字符...大家都是怎么处理的?

mgna17 说:

不对诶,字母也不等宽 hmm 依云大大,你上面发的那段代码里的 m 比self的 e 和 l 拼起来还要宽

这个和使用的字体有关。我用的是 DejaVu Mono,是完全等宽的(包括空格)。你用的是什么字体呢?(按 F12 然后找找,可以看到正在使用的字体)

离线

#10 2017-02-16 14:03:47

Mr.I
路人丙
所在地: Kerbal
注册时间: 2015-08-29
帖子: 308

Re: 行宽不得超过80个字符...大家都是怎么处理的?

依云 说:

这个和使用的字体有关。我用的是 DejaVu Mono,是完全等宽的(包括空格)。你用的是什么字体呢?(按 F12 然后找找,可以看到正在使用的字体)

我发现问题了,我的在这个页面上使用的字体是 Droid Sans Fallback,而且只有这一种,这个是不等宽的。我得去研究一下字体配置了,囧

离线

页脚