鱼C论坛

 找回密码
 立即注册
查看: 1737|回复: 3

[已解决]请大神帮忙看一下我的这个问题

[复制链接]
发表于 2023-9-5 18:49:23 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
python课后作业第62讲:类和对象(v)的动动手,我在参考答案的时候,有一段代码如下
def confirm_passwd(self):
        cardid = int(input("请输入卡号:"))
        while not self.members.get(cardid):
            cardid = int(input("该卡号不存在,请重新输入:"))
            
        passwd = input("请输入密码:")
        passwd = self.to_md5(passwd)
        while not self.members.get(cardid).passwd == passwd:
            passwd = input("密码不正确,请重新输入:")
            passwd = self.to_md5(passwd)

self.members.get(cardid).passwd == passwd:这一句是从self.member这个字典里取值,后面这个.passwd是个什么意思呢,为啥不用加get?

完整代码已放在本贴附件里了,请大神解答一下
最佳答案
2023-9-5 18:49:39
在这段代码中, self.members  是一个字典,其中存储了卡号和对应的成员对象。 self.members.get(cardid)  是通过卡号  cardid  从字典中取出对应的成员对象。

.passwd  是成员对象的一个属性,表示密码。这里使用  .passwd  是为了获取成员对象的密码属性值。

在  while not self.members.get(cardid).passwd == passwd:  这一行中,首先通过  self.members.get(cardid)  获取到对应的成员对象,然后使用  .passwd  获取该成员对象的密码属性值。最后将该密码属性值与输入的密码  passwd  进行比较。

不需要使用  .get()  的原因是, self.members.get(cardid)  已经返回了对应的成员对象,我们可以直接对该对象的属性进行访问。

supermarket (1).zip

2.04 KB, 下载次数: 0

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2023-9-5 18:49:39 | 显示全部楼层    本楼为最佳答案   
在这段代码中, self.members  是一个字典,其中存储了卡号和对应的成员对象。 self.members.get(cardid)  是通过卡号  cardid  从字典中取出对应的成员对象。

.passwd  是成员对象的一个属性,表示密码。这里使用  .passwd  是为了获取成员对象的密码属性值。

在  while not self.members.get(cardid).passwd == passwd:  这一行中,首先通过  self.members.get(cardid)  获取到对应的成员对象,然后使用  .passwd  获取该成员对象的密码属性值。最后将该密码属性值与输入的密码  passwd  进行比较。

不需要使用  .get()  的原因是, self.members.get(cardid)  已经返回了对应的成员对象,我们可以直接对该对象的属性进行访问。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-9-5 22:28:40 | 显示全部楼层
isdkz 发表于 2023-9-5 18:49
在这段代码中, self.members  是一个字典,其中存储了卡号和对应的成员对象。 self.members.get(cardid)   ...

首先通过  self.members.get(cardid)  获取到对应的成员对象,然后使用  .passwd  获取该成员对象的密码属性值。这句话能给我一个简化版的代码让我理解吗?(能执行的那种)大佬谢谢啦
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-9-5 22:50:30 | 显示全部楼层
isdkz 发表于 2023-9-5 18:49
在这段代码中, self.members  是一个字典,其中存储了卡号和对应的成员对象。 self.members.get(cardid)   ...

主要是不理解这个.passwd到底是对应的哪一行代码,或者说访问的是哪一个具体对象的属性,想看看简化版的代码辅助理解一下。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-14 15:33

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表