Lambda 函数不能分配给方法
Lambda Function Cannot Be Assigned to Method
我有一个来自 Google API 的 python 脚本,但是当我 运行 它时,我得到 error: Cannot assign to a method
的在线状态:
request.get_method = lambda: method
代码块(完整代码:https://cloud.google.com/identity/docs/how-to/create-devices):
def create_delegated_credentials(user_email):
credentials = service_account.Credentials.from_service_account_file(
SA_FILE,
scopes=['https://www.googleapis.com/auth/cloud-identity.devices'])
delegated_credentials = credentials.with_subject(user_email)
return delegated_credentials
request = google.auth.transport.requests.Request()
dc = create_delegated_credentials(ADMIN_EMAIL)
dc.refresh(request)
print('Access token: ' + dc.token + '\n')
header = {...}
body = {...}
serialized_body = json.dumps(body, separators=(',', ':'))
request_url = BASE_URL + 'devices'
print('Request URL: ' + request_url)
print('Request body: ' + serialized_body)
serialized_body = json.dumps(body, separators=(',', ':'))
request = urllib.request.Request(request_url, serialized_body, headers=header)
request.get_method = lambda: 'POST' ############HERE
有人知道如何解决这个问题吗?
而不是修改 Request 对象(mypy
有助于出错,因为通常对函数的赋值是一个错误或 monkeypatch hack),您可以直接在构造中设置 method
Request
:
request = urllib.request.Request(request_url, serialized_body, headers=header, method='POST')
此参数已添加到 python3.3
我有一个来自 Google API 的 python 脚本,但是当我 运行 它时,我得到 error: Cannot assign to a method
的在线状态:
request.get_method = lambda: method
代码块(完整代码:https://cloud.google.com/identity/docs/how-to/create-devices):
def create_delegated_credentials(user_email):
credentials = service_account.Credentials.from_service_account_file(
SA_FILE,
scopes=['https://www.googleapis.com/auth/cloud-identity.devices'])
delegated_credentials = credentials.with_subject(user_email)
return delegated_credentials
request = google.auth.transport.requests.Request()
dc = create_delegated_credentials(ADMIN_EMAIL)
dc.refresh(request)
print('Access token: ' + dc.token + '\n')
header = {...}
body = {...}
serialized_body = json.dumps(body, separators=(',', ':'))
request_url = BASE_URL + 'devices'
print('Request URL: ' + request_url)
print('Request body: ' + serialized_body)
serialized_body = json.dumps(body, separators=(',', ':'))
request = urllib.request.Request(request_url, serialized_body, headers=header)
request.get_method = lambda: 'POST' ############HERE
有人知道如何解决这个问题吗?
而不是修改 Request 对象(mypy
有助于出错,因为通常对函数的赋值是一个错误或 monkeypatch hack),您可以直接在构造中设置 method
Request
:
request = urllib.request.Request(request_url, serialized_body, headers=header, method='POST')
此参数已添加到 python3.3