超级方法如何在python中实际运行?
在给定的代码中:
class A(object):
def test(self):
return 'A'
class B(A):
def test(self):
return 'B->'+super(B, self).test()
class C(A):
def test(self):
return 'C'
class D(B,C):
pass
print B().test() # B->A
print D().test() # B->C ????
# MRO of classes are as
print 'mro of A', A.__mro__ # [A,object]
print 'mro of B', B.__mro__ # [B,A,object]
print 'mro of C', C.__mro__ # [C,A,object]
print 'mro of D', D.__mro__ # [D,B,C,A,object]
Run Code Online (Sandbox Code Playgroud)
当test在D上调用时,它输出B->C而不是B->A(我期待的).
B中的超级内容如何引用C的实例?
python oop inheritance multiple-inheritance method-resolution-order
在这个 django 函数中
def request(request):
args = {"name": "name", 'message': "message"}
return render(request, 'request.html', args)
Run Code Online (Sandbox Code Playgroud)
模板将获取 {{name}} 和 {{message}} 变量...但是除了这两个变量之外,还可以访问模板上的 {{user}} 和 {{LANGUAGES}} 对象,这些对象由中间件在 RequestContext 中设置。
有没有办法显示/渲染通过我的自定义响应或任何中间件(例如请求客户端的 IP 地址和其他信息)发送到模板的每个对象/变量。