【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
的类,用于表示一个人的基本信息和体重变化的行为
class Person:
定义了一个名为Person
的类def __init__(self, name, weight):
定义了类的构造函数,用于在创建Person
对象时初始化其属性。self
代表类的实例本身,name
和weight
是构造函数的参数self.name = name
:将传入的name
参数赋值给实例属性name
self.weight = weight
:将传入的weight
参数赋值给实例属性weight
def __str__(self):
定义了类的字符串表示方法,当使用print()
函数打印Person
对象时,会调用这个方法return f'{self.name}的体重是{self.weight}kg'
:返回一个格式化的字符串,显示人的名字和体重
def run(self):
定义了一个名为run
的方法,用于模拟人跑步时体重减少的行为print(f'{self.name}跑步,体重减少了')
:打印出人跑步的信息self.weight -= 0.5
:将实例属性weight
的值减少 0.5
def eat(self):
定义了一个名为eat
的方法,用于模拟人吃东西时体重增加的行为print(f'{self.name}吃东西,体重增加了')
:打印出人吃东西的信息self.weight += 0.7
:将实例属性weight
的值增加 0.7
xiaoming = Person('小明', 75)
:创建了一个Person
类的实例,名为xiaoming
,其名字为 “小明”,体重为75kgprint(xiaoming)
:打印xiaoming
实例,由于重写了__str__
方法,所以会打印出 “小明的体重是75kg”xiaoming.run()
:调用xiaoming
实例的run
方法,模拟小明跑步,体重减少 0.5kg。print(xiaoming)
:再次打印xiaoming
实例,此时体重变为74.5kg,所以会打印出 “小明的体重是74.5kg”xiaoming.eat()
:调用xiaoming
实例的eat
方法,模拟小明吃东西,体重增加 0.7kgprint(xiaoming)
:再次打印xiaoming
实例,此时体重变为75.2kg,所以会打印出 “小明的体重是75.2kg”
三、思考
3.1 封装(登录)
logi
方法的名字是有意为之,请确保在其他地方引用时也保持一致- 在实际应用中,直接打印密码并不是安全的做法。通常情况下,密码不应该以明文形式显示或存储
- 如果是在真实的应用中,还需要考虑更多的安全性和用户体验问题
3.2 封装(小明)
- __init__初始化基本信息
- __str__加上实例的print输出信息
- run和eat方法变更weight变量
- 最终达到记录体重变更的目的