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

【python实操】python小程序之封装(登录、小明)

引言

python小程序之封装(登录、小明)

文章目录

  • 引言
  • 一、封装(登录)
    • 1.1 题目
    • 1.2 代码
    • 1.3 代码解释
      • 1.3.1 类定义
      • 1.3.2 方法
      • 1.3.3 实例化与调用
      • 1.3.4 完整代码
  • 二、封装(小明)
    • 2.1 题目
    • 2.2 代码
    • 2.3 代码解释
  • 三、思考
    • 3.1 封装(登录)
    • 3.2 封装(小明)

一、封装(登录)

1.1 题目

某 Web 项目登录页面包含: 用户名, 密码, 验证码, 登录按钮 和登录的方法
书写代码实现以上功能, 登录方法中使用 print 输出即可

1.2 代码

class LoginPage:
    def __init__(self, username, password, code):
        self.username = username
        self.password = password
        self.code = code
        self.login = '登录'

    def logi(self):
        print(f'输入用户名:{self.username}\n输入密码:{self.password}\n输入验证码:{self.code}\n{self.login}')

x = LoginPage('test', '123456','999')
x.logi()

输出结果:
在这里插入图片描述

1.3 代码解释

这段代码定义了一个名为 LoginPage 的类,用于模拟登录页面的行为

1.3.1 类定义

  • 类名LoginPage
  • 构造函数 (__init__):
    • 参数:
      • username:表示用户名
      • password:表示密码
      • code:表示验证码
    • 属性初始化:
      • self.username:将传入的 username 参数赋值给实例变量 username
      • self.password:将传入的 password 参数赋值给实例变量 password
      • self.code:将传入的 code 参数赋值给实例变量 code
      • self.login:设置一个固定的字符串 '登录',这可能代表登录按钮上的文本

1.3.2 方法

  • 方法名logi
    • 功能:打印出输入的用户名、密码和验证码,并显示登录按钮的文本
    • 实现:使用f-string来格式化输出,其中包含换行符 \n 来分隔不同的输入项

1.3.3 实例化与调用

  • 创建了 LoginPage 类的一个实例 x,并传入了用户名 'test'、密码 '123456' 和验证码 '999'
  • 调用了 x.logi() 方法,该方法会打印出以下内容:
输入用户名:test
输入密码:123456
输入验证码:999
登录

1.3.4 完整代码

class LoginPage:
    def __init__(self, username, password, code):
        self.username = username
        self.password = password
        self.code = code
        self.login = '登录'

    def logi(self):
        print(f'输入用户名:{self.username}\n输入密码:{self.password}\n输入验证码:{self.code}\n{self.login}')

# 创建 LoginPage 的实例
x = LoginPage('test', '123456', '999')
# 调用 logi 方法
x.logi()

二、封装(小明)

2.1 题目

小明体重75公斤,每跑一次步会减0.5公斤,每吃一次东西会重0.7公斤

2.2 代码

class Person:
    def __init__(self, name, weight):
        self.name = name
        self.weight = weight

    def __str__(self):
        return f'{self.name}的体重是{self.weight}kg'

    def run(self):
        print(f'{self.name}跑步,体重减少了')
        self.weight -= 0.5

    def eat(self):
        print(f'{self.name}吃东西,体重增加了')
        self.weight += 0.7


xiaoming = Person('小明', 75)
print(xiaoming)

xiaoming.run()
print(xiaoming)

输出结果:
在这里插入图片描述

2.3 代码解释

这段代码定义了一个名为 Person 的类,用于表示一个人的基本信息和体重变化的行为

  1. class Person: 定义了一个名为 Person 的类
  2. def __init__(self, name, weight): 定义了类的构造函数,用于在创建 Person 对象时初始化其属性。self 代表类的实例本身,nameweight 是构造函数的参数
    • self.name = name:将传入的 name 参数赋值给实例属性 name
    • self.weight = weight:将传入的 weight 参数赋值给实例属性 weight
  3. def __str__(self): 定义了类的字符串表示方法,当使用 print() 函数打印 Person 对象时,会调用这个方法
    • return f'{self.name}的体重是{self.weight}kg':返回一个格式化的字符串,显示人的名字和体重
  4. def run(self): 定义了一个名为 run 的方法,用于模拟人跑步时体重减少的行为
    • print(f'{self.name}跑步,体重减少了'):打印出人跑步的信息
    • self.weight -= 0.5:将实例属性 weight 的值减少 0.5
  5. def eat(self): 定义了一个名为 eat 的方法,用于模拟人吃东西时体重增加的行为
    • print(f'{self.name}吃东西,体重增加了'):打印出人吃东西的信息
    • self.weight += 0.7:将实例属性 weight 的值增加 0.7
  6. xiaoming = Person('小明', 75):创建了一个 Person 类的实例,名为 xiaoming,其名字为 “小明”,体重为75kg
  7. print(xiaoming):打印 xiaoming 实例,由于重写了 __str__ 方法,所以会打印出 “小明的体重是75kg”
  8. xiaoming.run():调用 xiaoming 实例的 run 方法,模拟小明跑步,体重减少 0.5kg。
  9. print(xiaoming):再次打印 xiaoming 实例,此时体重变为74.5kg,所以会打印出 “小明的体重是74.5kg”
  10. xiaoming.eat():调用 xiaoming 实例的 eat 方法,模拟小明吃东西,体重增加 0.7kg
  11. print(xiaoming):再次打印 xiaoming 实例,此时体重变为75.2kg,所以会打印出 “小明的体重是75.2kg”

三、思考

3.1 封装(登录)

  • logi 方法的名字是有意为之,请确保在其他地方引用时也保持一致
  • 在实际应用中,直接打印密码并不是安全的做法。通常情况下,密码不应该以明文形式显示或存储
  • 如果是在真实的应用中,还需要考虑更多的安全性和用户体验问题

3.2 封装(小明)

  • __init__初始化基本信息
  • __str__加上实例的print输出信息
  • run和eat方法变更weight变量
  • 最终达到记录体重变更的目的

http://www.kler.cn/news/339756.html

相关文章:

  • linux中的火墙优化策略
  • 生成哈夫曼树
  • Python国庆作业
  • 电机、减速机、轮行走的脉冲分辨率
  • 【springboot】简易模块化开发项目整合Redis
  • AI学习指南深度学习篇-生成对抗网络的数学原理
  • 【C语言系统编程】【第三部分:网络编程】3.2 数据传输和协议
  • GO GOPS学习
  • Apache Flink 和 Apache Kafka
  • Flink 03 | 数据流基本操作
  • 车身控制系统(BCM)详解
  • Spring相关知识补充
  • 75 华三vlan端口隔离
  • 机器学习:opencv--图像拼接
  • 通过网页设置参数,submit还是json
  • SQL第14课挑战题
  • pikachu靶场总结(四)
  • 苍穹外卖学习笔记(十七)
  • Unity 如何在 iOS 新增键盘 KeyCode 响应事件
  • 【AI绘画】Midjourney进阶:对称构图详解