我对Python和编程很新,所以如果我的术语不正确,我会提前道歉。
angular.module('App')
.directive('KpiParameter', function() {
return {
restrict: 'E',
templateUrl: 'app/kpi/kpi-parameter/kpi-parameter.html',
scope: {
card: '=',
kpiParamCallback: '&',
selectedProductionUnit: '<'
},
controller: function($scope, $rootScope, KpiChartFactory, $filter) {
console.log("!???????");
console.log($scope.selectedProductionUnit);
$scope.$watch('selectedProductionUnit', function() {
console.log($scope.selectedProductionUnit);
console.log("Changed");
KpiParamUpdated();
$scope.kpiParamCallback({
selectedProductionUnit: $scope.productionUnitDefault
});
}, true);
function KpiParamUpdated() {
console.log("KPiParamUpdated");
console.log($scope.selectedProductionUnit);
$scope.dataloaded0 = true;
KpiChartFactory.get({ pu: $scope.selectedProductionUnit }, function(data) {
$scope.selectedKpi = data;
console.log($scope.selectedKpi);
$rootScope.$broadcast('kpiParams', $scope.selectedKpi);
});
}
$scope.footerLinkClicked = function(pu) {
console.log("parameters received :");
console.log(pu);
}
},
controllerAs: "KpiPCtrl"
};
});
我想要实现的目标:
我希望函数将'name'参数(一个字符串输入)转换为一个预先退出的变量,这将消除对多个IF语句的需要。
上面的例子只包含一个IF语句,但对于我的项目会有更多,我宁愿保持函数干净简单。
这不起作用,但这正是我想要的目标:
hue_alert_delay = 0
def delays(name, delay):
global hue_alert_delay
if name == 'hue_alert_delay':
for i in range(0, delay):
hue_alert_delay += 1
time.sleep(1)
hue_alert_delay = 0
delays('hue_alert_delay', 60)
任何帮助将不胜感激。
答案 0 :(得分:1)
使用dict:
values = {
'hue_alert_delay': 0
}
def delays(name, delay):
values[name] += 1
每当你想使用&#34;变量&#34;时,你最想要的是存储键值关联的字典。是的,是其他方式按字面意思做你想要的,但很快就会导致疯狂的代码。
答案 1 :(得分:0)
使用这样的字典。
vars = {'hue_alert_delay':0}
def delays(name, delay):
for i in range(0, delay):
vars[name] += 1
time.sleep(1)
vars[name] = 0
您也可以使用globals()[name]
,但我不推荐它。
答案 2 :(得分:0)
使用字典:
vars = {'hue_alert_delay':0}
def delays(name, delay):
for i in range(delay):
vars[name] += 1
time.sleep(1)
vars[name] = 0
delays('hue_alert_delay', 60)