python对象的类型判断isinstance()、 type()

基本类型

  • classinfo可以是,int,float,bool,complex,str(字符串),list,dict(字典),set,tuple

 

1、python对象的类型判断 -- isinstance()

  • isinstance() 函数来判断一个对象是否是一个已知的类型;
  • isinstance() 会认为子类是一种父类类型,考虑继承关系;
  • 如果要判断两个类型是否相同推荐使用 isinstance()。

 

语法:

isinstance(object, classinfo)

参数

  • object -- 实例对象。
  • classinfo -- 可以是直接或间接类名、基本类型或者由它们组成的元组。

返回值

如果对象的类型与参数二的类型(classinfo)相同则返回 True,否则返回 False

 

1)基本类型  isinstance()

age = 20
name = "小明"
flag = True
price = 20.01

print(isinstance(age, int))  # True
print(isinstance(name, str))  # True
print(isinstance(flag, bool))  # True
print(isinstance(price, float))  # True

print(isinstance(price, (int, list, str)))   # False, 是元组中的一个返回 True
print(isinstance(age, (int, list, str)))   # True,是元组中的一个返回 True

 

2)自定义类型  isinstance()

  • Father类的对象father,是Father类型;
  • Son类的对象son,是父类Father类型;
  • Son类的对象son,是Son类型;
  • Father类的对象father,不是Son类型;
class Father(object):
    pass

class Son(Father):
    pass

father = Father()
son = Son()
print(isinstance(father, Father))  # True
print(isinstance(son, Father))  # True
print(isinstance(son, Son))  # True
print(isinstance(father, Son))  # False

 

2、python对象的类型判断 -- type()

  • type() 不会认为子类是一种父类类型,不考虑继承关系。

 

1)基本类型  type()

age = 20
name = "小明"
flag = True
price = 20.01
print(type(age) == int)  # True
print(type(name) == str)  # True
print(type(flag) == bool)  # True
print(type(price) == float)  # True
print(type(price) in (int, list, str))   # False, 是元组中的一个返回 True
print(type(age) in (int, list, str))   # True,是元组中的一个返回 True

 

2)自定义类型  type()

  • Father类的对象father,是Father类型;
  • Son类的对象son,是Son类型;
  • Son类的对象son,不是父类Father类型;
  • Father类的对象father,不是Son类型;
class Father(object):
    pass

class Son(Father):
    pass

father = Father()
son = Son()
print(type(father) == Father)  # True
print(type(son) == Son)  # True
print(type(son) == Father)  # False
print(type(father) == Son)  # False

 

 

 

  • 5
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
可以使用以下步骤来实现 JavaScript 中的 SM2 加密和 Java 中的解密: JavaScript 中的 SM2 加密: 1. 使用 SM2 加密算法库(例如 jsrsasign)生成公私钥对。 2. 使用公钥加密明文数据。 3. 将加密后的数据转换为 Base64 编码格式。 4. 将加密后的数据发送给后端。 以下是 JavaScript 中使用 jsrsasign 库进行 SM2 加密的示例代码: ```javascript // 生成公私钥对 var keypair = KEYUTIL.generateKeypair("SM2"); // 获取公钥 var publicKey = keypair.pubKeyObj; // 加密明文数据 var plainText = "Hello World"; var encryptedData = publicKey.encrypt(plainText); // 将加密后的数据转换为 Base64 编码格式 var base64Data = hextob64(encryptedData); // 发送加密后的数据给后端 sendDataToServer(base64Data); ``` Java 中的 SM2 解密: 1. 使用 SM2 加密算法库(例如 bcprov-jdk15on)读取私钥。 2. 将从前端接收到的 Base64 编码格式的数据转换为 byte 数组。 3. 使用私钥解密数据。 以下是 Java 中使用 bcprov-jdk15on 库进行 SM2 解密的示例代码: ```java // 读取私钥 PEMParser pemParser = new PEMParser(new FileReader("private_key.pem")); JcaPEMKeyConverter converter = new JcaPEMKeyConverter().setProvider("BC"); Object object = pemParser.readObject(); PEMKeyPair pemKeyPair = (PEMKeyPair) object; PrivateKey privateKey = converter.getPrivateKey(pemKeyPair.getPrivateKeyInfo()); // 将从前端接收到的 Base64 编码格式的数据转换为 byte 数组 byte[] base64Data = Base64.getDecoder().decode(data); // 使用私钥解密数据 SM2Engine sm2Engine = new SM2Engine(); sm2Engine.init(false, new ParametersWithRandom(new SM2PrivateKeyParameters(privateKey, new SM2Parameters()))); byte[] decryptedData = sm2Engine.processBlock(base64Data, 0, base64Data.length); String plainText = new String(decryptedData, "UTF-8"); ``` 需要注意的是,JavaScript 中的 SM2 加密库和 Java 中的 SM2 解密库必须使用相同的参数配置,例如密钥长度、填充方式等。另外,为了保证数据的安全性,建议在传输过程中使用 HTTPS 协议加密数据。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值