当前位置: 首页 > news >正文

php语言做购物网站推广赚钱平台

php语言做购物网站,推广赚钱平台,淮安做网站的有多少,网站注销流程文章目录 1. 前置知识:哈希是什么2. 可哈希和不可哈希对象的定义2.1可哈希2.2 不可哈希 3. 对象的哈希方法3.1 自定义对象的哈希方法3.2 可哈希性与等价性3.3 哈希值的用途 推荐 在复习可变对象和不可变对象时,学到了这个内容 1. 前置知识:哈…

文章目录

  • 1. 前置知识:哈希是什么
  • 2. 可哈希和不可哈希对象的定义
    • 2.1可哈希
    • 2.2 不可哈希
  • 3. 对象的哈希方法
    • 3.1 自定义对象的哈希方法
    • 3.2 可哈希性与等价性
    • 3.3 哈希值的用途
  • 推荐

在复习可变对象和不可变对象时,学到了这个内容


1. 前置知识:哈希是什么

哈希(Hashing)是一种将任意大小的数据转换成固定大小的数据的过程。这种转换通过哈希函数实现,它接收输入(或“消息”),并返回一个通常具有固定长度的字符串,这个字符串被称为哈希值或哈希码。哈希的主要用途包括数据的快速查找、数据完整性校验、以及安全应用中的加密技术。

哈希的关键特点是:

  • 效率高:哈希函数设计为能够快速处理大量数据。
  • 确定性:对于同一输入总是产生相同的输出。
  • 随机分布:哈希值应均匀且随机分布,减少冲突。
  • 不可逆性:理想的哈希函数使得从哈希值恢复原始输入极其困难。

2. 可哈希和不可哈希对象的定义

2.1可哈希

可哈希对象是指其生命周期内具有不变的哈希值的对象。这些对象可以作为字典的键或者集合的元素。整数、浮点数、字符串和元组都是可哈希的。

整数的哈希值

x = 10
print(hash(x))  # 输出:10的哈希值

用内置的hash()函数来获取一个整数的哈希值。

2.2 不可哈希

不可哈希对象是指内容可以更改的对象,因此哈希值也可能会变。列表和字典是典型的不可哈希对象。

列表的不可哈希性

my_list = [1, 2, 3]
try:print(hash(my_list))
except TypeError as e:print(e)  # 输出错误信息,指出列表是不可哈希的

由于列表是可变的,Python不允许对其进行哈希。所以尝试哈希列表将抛出一个TypeError。

3. 对象的哈希方法

3.1 自定义对象的哈希方法

可哈希对象需要实现__hash__()方法,该方法返回对象的哈希值。如果对象是可变的,则应返回None,表示对象不可哈希。

class Person:def __init__(self, name):self.name = namedef __hash__(self):return hash(self.name)  # 基于名字的哈希值person = Person('Alice')
print(hash(person))  # 输出:Alice的哈希值

定义了一个Person类,重写__hash__()方法使其实例可哈希。哈希函数基于人的名字来计算哈希值,根据对象的某个不变属性来提供一个一致的哈希值。

3.2 可哈希性与等价性

如果两个对象的哈希值相同,它们首先被视为可能相等,然后通过__eq__()方法进行进一步的比较来确定是否真的相等。

实现等价性

class Product:def __init__(self, id, name):self.id = idself.name = namedef __hash__(self):return hash(self.id)def __eq__(self, other):return self.id == other.idproduct1 = Product(1, 'Apple')
product2 = Product(1, 'Apple')
print(hash(product1) == hash(product2))  # 输出:True
print(product1 == product2)  # 输出:True

Product类通过id属性来定义其哈希方法和等价性检测。只要两个产品的id相同,就被认为是相等的,这说明了在自定义类中如何同时实现__hash__()和__eq__()方法来保证对象可以被正确地用于字典键或集合元素。

3.3 哈希值的用途

哈希值用于快速比较对象是否相同,是字典和集合高效性的关键。

字典中使用哈希值

my_dict = {person: 'Engineer'}
print(my_dict[person])  # 输出:'Engineer'

只有可哈希对象才可以作为字典的键

推荐

推荐我的相关专栏:

  • python 错误记录
  • python 笔记
http://www.dinnco.com/news/71276.html

相关文章:

  • 怎么用手机做网站网络品牌营销
  • 苏宁易购网站建设情况成都网站推广
  • 购物网站后台好管理吗长沙网络公关公司
  • 成熟网站开发联系电话seo优化多久能上排名
  • 烟台网站建设哪家好热搜词工具
  • php做网站毕设答辩问什么重庆网站seo服务
  • 网站平台建设实训心得体会百度开户资质
  • 做门户网站开发的技术四川seo推广
  • 展示网站建设价格制作一个简单的html网页
  • 云数据库可以做网站吗软件开发外包平台
  • 电子商务网站建设的规划书百度搜索引擎推广
  • 建网站中企动力最行app拉新平台哪个好佣金高
  • 做美食网站的图片素材网络销售是做什么的
  • 有代源码怎么做自己网站中国十大seo
  • 烟台网站建设加盟seo工作是什么意思
  • 网站开发做原型吗人力资源培训网
  • 网站建设面临的困难螺蛳粉营销策划方案
  • 手机编程软件哪个好网站关键词优化的价格
  • 做业务的网站怎么上百度搜索
  • 太原做网站要多少钱呢广州短视频代运营
  • 怎么做网站dreamwave360收录提交
  • 使用html5的网站近两年网络营销成功案例
  • 爱做片视频网站google store
  • 做电商网站的框架结构图百度在线翻译
  • 肥城网站开发公司百度app
  • 河北省住房和城乡建设厅 网站武汉seo优化公司
  • 惠州网站建设哪家便宜今日头条热搜榜
  • 做网站公司排行站长工具高清
  • 廊坊网站排名优化公司哪家好网络营销与直播电商好就业吗
  • 企业光纤局域网组网方案seo网络推广知识