小编pet*_*den的帖子

Python格式化大文本

在python中格式化大块文本的最佳方法是什么?我不是指格式化输出,而是为了可读性.我一直在尝试遵循python布局指导原则,但我没有看到有关如何格式化大量文本的任何评论.

例如:

class GenerateCalendar(object):
def __init__(self):
    super( GenerateCalendar, self ).__init__()

def getCalendarHeader( self ):
    print """
BEGIN:VCALENDAR
PRODID:-//Atlassian Software Systems//Confluence Calendar Plugin//EN
VERSION:2.0
CALSCALE:GREGORIAN
X-WR-CALNAME;VALUE=TEXT:
X-WR-CALDESC;VALUE=TEXT:
"""
Run Code Online (Sandbox Code Playgroud)

大块文本看起来很糟糕,并没有缩进4个空格,因此很难阅读.

我想看到的是:

 def getCalendarHeader( self ):
    print """
    BEGIN:VCALENDAR
    PRODID:-//Atlassian Software Systems//Confluence Calendar Plugin//EN
    VERSION:2.0
    CALSCALE:GREGORIAN
    X-WR-CALNAME;VALUE=TEXT:
    X-WR-CALDESC;VALUE=TEXT:
    """
Run Code Online (Sandbox Code Playgroud)

但这会在输出的开头引入空白区域.

有关如何使其遵循python推荐布局的任何想法?我想保持它整洁,易于阅读.

是否可以在不对每行进行打印的情况下这样做?例如

def getCalendarHeader( self ):
    print "BEGIN:VCALENDAR\n"
    print "PRODID:-//Atlassian Software Systems//Confluence Calendar Plugin//EN\n"
    print "VERSION:2.0\n"
    print "CALSCALE:GREGORIAN\n"
    print "X-WR-CALNAME;VALUE=TEXT:\n"
    print "X-WR-CALDESC;VALUE=TEXT:\n"
Run Code Online (Sandbox Code Playgroud)

以上是我希望代码出现的方式,而不需要在每一行上进行打印.

python string-formatting

9
推荐指数
1
解决办法
2万
查看次数

MVC @ Html.TextBoxFor(model => model.SomeNotNullableType)插入默认值

MVC @Html.TextBoxFor(model => model.SomeNotNullableType)使用此帮助程序时,如果我在数据库中有一个不可为空的类型,则视图最终会在文本框中显示默认值.特别是在我的情况下,该字段采用整数,并在字段中设置默认值0.

我知道我可以用Javascript删除错误的0或者在html中设置默认值,但我希望有一种更"正确"的方法.我可以在我的模型中指定我不希望将默认视图放入文本框中(您不能将其设置为null,因为它不可为空).坚持真正的模型方法我想在模型/控制器中而不是在视图中修复它.

asp.net-mvc-3

5
推荐指数
1
解决办法
1843
查看次数

JavaScript替换为null

var p = "null"
var q = null;
(p == q) //false. as Expected.

p.replace(null, "replaced") // outputs replaced. Not expected.
p.replace("null", "replaced") //outputs replaced. Expected.

q.replace(null, "replaced") // error.  Expected.
q.replace("null", "replaced") //error. Expected.
Run Code Online (Sandbox Code Playgroud)

为什么?是否更换之间无法区分"null"null

我问是因为我遇到了angularjs中的错误:

replace((pctEncodeSpaces ? null : /%20/g), '+');
Run Code Online (Sandbox Code Playgroud)

例如,如果某人的用户名是"null"且被用作url,则在任何$http呼叫中它将被替换为“ +” 。例如GET /user/null

并不是说这种情况会经常发生,而是我很好奇为什么替换对待null和对待"null"同一件事。null在替换之前,replace会在其上执行.tostring 吗?这只是Java语言的怪癖吗?

我在IE和Chrome的实施中都对此进行了验证replace

javascript

5
推荐指数
1
解决办法
1万
查看次数