有父类和子类我想用父实例初始化子类.我的方式看起来很麻烦(见下文):
我定义了一个static方法来提取init父初始化的参数:
class Parent(object):
@staticmethod
get_init_params(parent_obj):
a = parent_obj.a
b = parent_obj.b
return (a, b)
def __init__(self, a, b):
self.a = a
self.b = b
class Child(Parent):
def __init__(self, parent):
super(Parent, self).__init__(*get_init_params(parent))
Run Code Online (Sandbox Code Playgroud)
可能有更直接的方式吗?
编辑现在课程更简单
我将使用哪个Web服务器/配置来部署简单的Django/django-cms应用程序?我的主要兴趣点是(按优先顺序排列):
我可以找到不同的可能性:
关于上述几点,这些可能性之间是否有任何比较?我查看了Django文档,但没有任何建议.
假设我有以下列表:
mylist = [keyobj1, valobj1, valobj2, keyobj2, valobj1, valobj2, valobj3,...]
Run Code Online (Sandbox Code Playgroud)
我希望得到一个包含以下内容的词典:
mydict = {keyobj1: [valobj1, valobj2], keyobj2: [valobj1,valobj2,valobj3, ...}
Run Code Online (Sandbox Code Playgroud)
有没有执行此任务的库?
下面是要执行的粗略算法(我知道,看起来很难看):
# convert mylist to iterator
mylist = iter(mylist)
n = mylist.next()
while True:
try:
if not iskey(n):
n = mylist.next()
value_list.append(n)
else:
mydict[key] = value_list
value_list = []
key = n
n = mylist.next()
except StopIteration:
mydict[key] = value_list
break
Run Code Online (Sandbox Code Playgroud) 我正在尝试构建一个应用程序,用户可以在其中自定义表单。以下示例包含用于创建字段 ( QuestionField, AnswerField) 的类,该字段由管理员使用并由BoolAnswer用户填写: 这样管理员可以创建一个包含问题和可能答案的表单。
根据 django 文档,blank=True与评估有关。问题在于它是在类级别而不是对象级别上设置的。
如何blank=True根据相关模型进行设置,以便我不必重新实现自己的验证器?(参见 中的伪代码BoolAnswer)
我的models.py:
class QuestionField(models.Model):
question = models.TextField(max_length=200)
models.ForeignKey(Sheet)
class BoolAnswerField(AnswerField):
question = models.ForeignKey(models.Model)
if_true_field = models.TextField(max_length=100, null=True)
class BoolAnswer(models.Model):
bool_answer_field = models.ForeignKey(BoolAnswerField)
result = models.BooleanField()
if_true = models.TextField(max_length=100, null=True,
blank=True if self.bool_answer_field.if_true_field)
Run Code Online (Sandbox Code Playgroud)
** 简短说明 **:如果问题的答案BoolAnswerField为真,则if_true字段应解释,为什么
查看舵图,通常会出现以下情况:
{{- default .Chart.Name .Values.nameOverride | trunc 63 | trimSuffix "-" -}}
Run Code Online (Sandbox Code Playgroud)
我在模板文档中找不到关于默认函数的任何信息:
https://golang.org/pkg/text/template/
它的语义是什么?是否有任何可能的论点?
假设我有一个大文件,我想替换第n行.我知道这个解决方案:
w = open('out','w')
for line in open('in','r'):
w.write(replace_somehow(line))
os.remove('in')
os.rename('out','in')
Run Code Online (Sandbox Code Playgroud)
如果要在文件开头替换的行,我不想用多行重写整个文件.是否有可能直接替换第n行?
在下面的代码中,我使用装饰器来对类变量执行更改
class MyClass():
def __init__(self):
self.vars = [1,2]
self.log = None
def _mydecorator(function):
def logger(self):
self.log = "BLA"
function(self)
return logger
@_mydecorator
def addone(self):
print("Inside Class: %s" % map(lambda x: x+1, self.vars))
return map(lambda x: x+1, self.vars)
if __name__ == '__main__':
myclass = MyClass()
print myclass.addone()
Run Code Online (Sandbox Code Playgroud)
该脚本返回:
Inside Class: [2,3]
None
Run Code Online (Sandbox Code Playgroud)
为什么值没有传递给调用者?
如果我不装饰addone我得到的功能:
Inside Class: [2,3]
[2,3]
Run Code Online (Sandbox Code Playgroud)
这个装饰者改变了什么?