如何求解类参数"self"



>我尝试执行代码以创建类作为客户端,但未定义有关Self._public_key的问题显示讨论 ...名称错误:未定义名称"自我">

# import libraries
import hashlib
import random
import string
import json
import binascii
import numpy as np
import pandas as pd
import pylab as pl
import logging
import datetime
import collections
# following imports are required by PKI
import Crypto
import Crypto.Random
from Crypto.Hash import SHA
from Crypto.PublicKey import RSA
from Crypto.Signature import PKCS1_v1_5

class Client:
def __init__(self):
random = Crypto.Random.new().read
self._private_key = RSA.generate(1024, random)
self._public_key = self._private_key.publickey()
self._signer = PKCS1_v1_5.new(self._private_key)


def identity(self):
return
binascii.hexlify(self._public_key.exportKey(format='DER')).decode('ascii')

Dinesh = Client()
print (Dinesh.identity)

你在下一行写binascii.hexlify(self._public_key.exportKey(format='DER')).decode('ascii')。尝试在return关键字之后写它。希望你的错误会消失

你应该定义一个Clinet实例,然后得到它的_public_key:

binascii.hexlify(Client._public_key.exportKey(format='DER')).decode('ascii')

您需要借助函数而不是普通属性来获取identity属性。按如下方式修改identity()函数:

def identity(self):
idn = binascii.hexlify(self._public_key.exportKey(format='DER')).decode('ascii') # <------
return idn # <------

然后,您可以像这样称呼它:

Dinesh = Client()
print(Dinesh.identity())  # <------

最新更新