如何将非字符串值赋给变量

时间:2018-04-11 08:16:01

标签: python ssl openssl

我有这个任务:

context.options | = ssl.OP_NO_TLSv1_1

取自ssl python here。由于在assignemnt之后的值,可以采取不同的值:

ssl.OP_NO_TLSv1_1
ssl.OP_NO_TLSv1
ssl.OP_NO_SSLv3

我想在数组中添加所有值以使我的代码更具可读性。所以我做了以下事情:

noTLS = ['ssl.OP_NO_SSLv2','ssl.OP_NO_SSLv3','ssl.OP_NO_TLSv1','ssl.OP_NO_TLSv1_1']

然后:

context.options |= noTLS[3]

但我收到了一个错误:

TypeError: unsupported operand type(s) for |=: 'Options' and 'str'

有什么方法可以将这些非字符串值放在一个地方并通过引用像数组一样调用它们?

2 个答案:

答案 0 :(得分:0)

您可以输入实际值,而不是在noTLS列表中添加字符串。

noTLS = [ssl.OP_NO_SSLv2, ssl.OP_NO_SSLv3, ssl.OP_NO_TLSv1, ssl.OP_NO_TLSv1_1]

然后

context.options |= noTLS[3]

应该有用。

答案 1 :(得分:0)

也许你的意思是:

noTLS = [ssl.OP_NO_SSLv2, ssl.OP_NO_SSLv3, ssl.OP_NO_TLSv1, ssl.OP_NO_TLSv1_1]

为什么要将它们转换为str呢?

我想这段代码

context.options |= noTLS[3] 

然后就可以了。