table = globals().get(f'{table}')globals()的作用是什么
时间: 2024-04-22 12:28:31 浏览: 8
globals()是Python内置的一个函数,它返回一个表示当前全局符号表的字典对象。全局符号表包含了所有全局变量以及函数定义等信息。使用globals()函数可以在程序运行时动态获取全局符号表中的变量或函数,并对其进行操作。
在表达式globals().get(f'{table}')中,globals()返回当前全局符号表的字典对象,get()是字典对象的一个方法,用于返回指定键对应的值。表达式中使用f-string格式化字符串,将字符串table的值作为键传递给get()方法。这样可以动态地获取全局符号表中名为table的变量,并将其值赋给变量table。
这种方式可以在不提前声明变量的情况下,动态地创建或获取变量,灵活性更高。但是需要注意,使用globals()函数获取变量可能会导致命名空间污染和不可预期的行为,应该谨慎使用。
相关问题
table = globals().get(f'{table}')代码是什么意思
这行代码的作用是获取全局命名空间中名为table的变量,并将其赋值给变量table。
具体来说,globals()是Python内置函数,用于返回表示当前全局命名空间的字典对象。使用f-string格式化字符串可以将变量table的值作为字符串插入到字符串中。然后使用get()方法获取字典对象中键为table的值,如果不存在则返回None。最后将获取到的值赋给变量table。
这种方法可以在运行时动态获取变量,从而提高代码的灵活性。但是需要注意的是,使用globals()函数获取变量可能会导致命名空间污染和不可预期的行为,应该谨慎使用。
var url = '/api/pc/ca/manager/member/modify/applyInfo/page'; //1.dologin var bsmpUrl = pm.environment.get("server.url.bsmp"); var username = pm.environment.get("bsmp.login.pc.username"); var password = pm.environment.get("bsmp.login.pc.password"); var salt = pm.environment.get("bsmp.login.pc.salt"); var orgId = pm.environment.get("bsmp.login.pc.orgId"); var orgLevel = pm.environment.get("bsmp.login.pc.orgLevel"); let echoPostRequest = { url: 'http://' + bsmpUrl + '/api/pc/proxy/login', method: 'POST', header: [ "Content-Type: application/json; charset=UTF-8" ], body: { mode: 'raw', raw: '{\"username\":\"'+username+'\",\"password\":\"'+password+'\",\"salt\":\"'+salt+'\"}' } }; let echoGetRequest = { url: 'http://' + bsmpUrl + '/api/pc/proxy/complete' + '?' + 'orgId='+ orgId + '&' + 'orgLevel=' + orgLevel + '&' + 'time=' + '0.366126544927456', method: 'GET' }; pm.sendRequest(echoPostRequest, function (err, res) { console.log("loginRsp:" + res.json()); console.log("token:" + res.json().data) //2.doSign var token = res.json().data; var str = token + url pm.globals.set("temp", str); var sign = CryptoJS.MD5(str).toString(); pm.globals.set("token",token ); pm.globals.set("sign", sign); }); pm.sendRequest(echoGetRequest, function (err, res) { console.log("res:" + res.json()); }); 如何将此代码中的两个接口,按照顺序调用
可以使用回调函数或Promise对象来保证这两个接口按照顺序调用。
使用回调函数的方式,可以在第一个请求的回调函数中调用第二个请求。例如:
```
var url = '/api/pc/ca/manager/member/modify/applyInfo/page';
var bsmpUrl = pm.environment.get("server.url.bsmp");
var username = pm.environment.get("bsmp.login.pc.username");
var password = pm.environment.get("bsmp.login.pc.password");
var salt = pm.environment.get("bsmp.login.pc.salt");
var orgId = pm.environment.get("bsmp.login.pc.orgId");
var orgLevel = pm.environment.get("bsmp.login.pc.orgLevel");
function doLogin(callback) {
let echoPostRequest = {
url: 'http://' + bsmpUrl + '/api/pc/proxy/login',
method: 'POST',
header: [
"Content-Type: application/json; charset=UTF-8"
],
body: {
mode: 'raw',
raw: '{\"username\":\"'+username+'\",\"password\":\"'+password+'\",\"salt\":\"'+salt+'\"}'
}
};
pm.sendRequest(echoPostRequest, function (err, res) {
console.log("loginRsp:" + res.json());
console.log("token:" + res.json().data);
var token = res.json().data;
var str = token + url;
pm.globals.set("temp", str);
var sign = CryptoJS.MD5(str).toString();
pm.globals.set("token",token );
pm.globals.set("sign", sign);
callback();
});
}
function doSign() {
var token = pm.globals.get("token");
var sign = pm.globals.get("sign");
let echoGetRequest = {
url: 'http://' + bsmpUrl + '/api/pc/proxy/complete' + '?' + 'orgId='+ orgId + '&' + 'orgLevel=' + orgLevel + '&' + 'time=' + '0.366126544927456' + '&' + 'token=' + token + '&' + 'sign=' + sign,
method: 'GET'
};
pm.sendRequest(echoGetRequest, function (err, res) {
console.log("res:" + res.json());
});
}
doLogin(function() {
doSign();
});
```
使用Promise对象的方式,可以通过链式调用then方法来保证接口按照指定的顺序调用。例如:
```
var url = '/api/pc/ca/manager/member/modify/applyInfo/page';
var bsmpUrl = pm.environment.get("server.url.bsmp");
var username = pm.environment.get("bsmp.login.pc.username");
var password = pm.environment.get("bsmp.login.pc.password");
var salt = pm.environment.get("bsmp.login.pc.salt");
var orgId = pm.environment.get("bsmp.login.pc.orgId");
var orgLevel = pm.environment.get("bsmp.login.pc.orgLevel");
function doLogin() {
return new Promise(function(resolve, reject) {
let echoPostRequest = {
url: 'http://' + bsmpUrl + '/api/pc/proxy/login',
method: 'POST',
header: [
"Content-Type: application/json; charset=UTF-8"
],
body: {
mode: 'raw',
raw: '{\"username\":\"'+username+'\",\"password\":\"'+password+'\",\"salt\":\"'+salt+'\"}'
}
};
pm.sendRequest(echoPostRequest, function (err, res) {
console.log("loginRsp:" + res.json());
console.log("token:" + res.json().data);
var token = res.json().data;
var str = token + url;
pm.globals.set("temp", str);
var sign = CryptoJS.MD5(str).toString();
pm.globals.set("token",token );
pm.globals.set("sign", sign);
resolve();
});
});
}
function doSign() {
var token = pm.globals.get("token");
var sign = pm.globals.get("sign");
let echoGetRequest = {
url: 'http://' + bsmpUrl + '/api/pc/proxy/complete' + '?' + 'orgId='+ orgId + '&' + 'orgLevel=' + orgLevel + '&' + 'time=' + '0.366126544927456' + '&' + 'token=' + token + '&' + 'sign=' + sign,
method: 'GET'
};
pm.sendRequest(echoGetRequest, function (err, res) {
console.log("res:" + res.json());
});
}
doLogin()
.then(function() {
doSign();
});
```