我试图将我所有面向用户的字符串放入一个文件中,以便更容易地更改这些字符串.我正在寻找可读性方面的最佳实践.我现在有两个版本的同一个文件,我看到两个版本的权衡.所以我想知道这种情况是否有最好的做法.
第一个constants.py文件
class strings:
esc_statuses = {
"RETURNED": "Returned",
"SUBMITTED": "Submitted",
"DRAFT": "Draft",
"CANCELED": "Canceled",
"ESCALATED": "Escalated"
}
NewEscFieldText = {
"customer_name": "The name of the customer who encountered this bug.",
"summary": "A brief summary of the bug.",
"request": "The request.",
"customer_impact": "How the customer is impacted.",
"severity": "The severity of the bug.",
"component": "The component of this bug.",
"related_bugs": "Bugs which are related to this one.",
"logs": "The logs assosciated with this bug.",
"description": "A detailed discription of the problem and any work \
put into reproducting it.",
"documentation": "Documentation consulted before escalation.",
}
Run Code Online (Sandbox Code Playgroud)
在第一个版本中,我将不得不说:
from constants import strings
Run Code Online (Sandbox Code Playgroud)
然后每当我想引用一些我不得不说的话
strings.esc_statuses["RETURNED"]
Run Code Online (Sandbox Code Playgroud)
我认为constants.py文件在这种格式下看起来更具可读性,但每次我必须使用字符串时我都会有更长的名字来咀嚼.
第二个constants.py文件.
class strings:
# ------------------------ Escalation status -----------------------------
RETURNED = "Returned"
SUBMITTED = "Submitted"
DRAFT =: "Draft"
CANCELED =: "Canceled"
ESCALATED =: "Escalated"
# ----------------------- New Escalation Field Text ----------------------
customer_name = "The name of the customer who encountered this bug."
summary = "A brief summary of the bug."
request = "The request."
customer_impact = "How the customer is impacted."
severity = "The severity of the bug."
component = "The component of this bug."
related_bugs = "Bugs which are related to this one."
logs = "The logs assosciated with this bug."
description = "A detailed discription of the problem and any work put \
into reproducting it."
documentation = "Documentation consulted before escalation."
Run Code Online (Sandbox Code Playgroud)
在这个版本中我只能说
from constants import strings
strings.RETURNED
Run Code Online (Sandbox Code Playgroud)
我认为这使得使用字符串更具可读性,但也使文件本身更难阅读.
那么,有没有任何风格指南涵盖这个?有没有我错过的考虑因素?
class stringer(type):
esc_statuses = {
"RETURNED": "Returned",
"SUBMITTED": "Submitted",
"DRAFT": "Draft",
"CANCELED": "Canceled",
"ESCALATED": "Escalated"
}
NewEscFieldText = {
"customer_name": "The name of the customer who encountered this bug.",
"summary": "A brief summary of the bug.",
"request": "The request.",
"customer_impact": "How the customer is impacted.",
"severity": "The severity of the bug.",
"component": "The component of this bug.",
"related_bugs": "Bugs which are related to this one.",
"logs": "The logs assosciated with this bug.",
"description": "A detailed discription of the problem and any work \
put into reproducting it.",
"documentation": "Documentation consulted before escalation.",
}
def __getattr__(self, name):
if name in stringer.NewEscFieldText:
return stringer.NewEscFieldText[name]
else:
return stringer.esc_statuses[name]
class strings:
__metaclass__ = stringer
print strings.customer_name
Run Code Online (Sandbox Code Playgroud)