Python有啥方法可以改变运行中程序的某个变量而不中断执行?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python有啥方法可以改变运行中程序的某个变量而不中断执行?相关的知识,希望对你有一定的参考价值。
就比如说有个程序在循环100次中,中途要临时对某个变量值进行修改看下下过,怎么能不打断这循环但变量值却改变
debug时候 可以监视变量,监视表达式,我理解应该是没办法改变中间的值让程序继续下去的。
你只能在代码里完成你想要的中间改变,想想看,如果一个程序允许你改变中间过程,那么编译器还怎么帮你优化流程 参考技术A 可以放个input函数进去,在循环到一定次数时执行,就达到你要的效果了。
希望对你有所帮助,谢谢您的支持!
有啥方法可以将变量传递给 django 元类?
【中文标题】有啥方法可以将变量传递给 django 元类?【英文标题】:Any way to pass a variable into a django meta class?有什么方法可以将变量传递给 django 元类? 【发布时间】:2020-12-02 11:43:40 【问题描述】:我正在开发一个 django 应用程序,该应用程序允许用户在地图上创建一个点。为了方便使用,这张地图需要以某个位置为中心,而这个位置是可变的。我正在使用LeafletWidget
让用户创建这个点。
可以通过更改LeafletWidget
的属性来使地图居中。不幸的是,这个小部件是在 Meta
类中定义的,据我所知,您不能将变量传递给它。这是我想做的一个例子,以某种方式将变量center
传递给Meta
类。 center
是具有纬度和经度值的元组。这个示例代码当然不起作用。我不知道您是否可以以某种方式将变量传递给 Meta
类。
class PointModelForm(ModelForm):
class Meta(center):
model = PointModel
fields = ['name', 'point']
widgets = 'point': LeafletWidget(attrs='settings_overrides': 'DEFAULT_CENTER': center )
我最好的选择是在__init__
函数中定义widgets
属性,但是如果我是正确的,Meta
类无法访问这些属性。当我运行它时,没有使用任何小部件。
class PointModelForm(ModelForm):
class Meta:
model = PointModel
fields = ['name', 'point']
def __init__(self, center):
super(PointModelForm, self).__init__()
self.widgets = 'point': LeafletWidget(attrs='settings_overrides': 'DEFAULT_CENTER': center )
你知道怎么做吗?提前致谢!
【问题讨论】:
【参考方案1】:您可以使用以下命令指定小部件的属性:
class PointModelForm(ModelForm):
class Meta:
model = PointModel
fields = ['name', 'point']
def __init__(self, *args, center=None, **kwargs):
super(PointModelForm, self).__init__(*args, **kwargs)
if center is not None:
attrs = self.fields['point'].widget.attrs
subattrs = attrs.setdefault('settings_overrides', )
subattrs['DEFAULT_CENTER'] = center
然后您可以使用以下命令构造PointModelForm
:
PointModelForm(center=(55, 12)) # for GET request
PointModelForm(request.POST, request.FILES, center=(55, 12)) # for POST request
【讨论】:
我不知道您可以以这种方式定义属性。非常感谢您的有用回答!以上是关于Python有啥方法可以改变运行中程序的某个变量而不中断执行?的主要内容,如果未能解决你的问题,请参考以下文章