简单理解Python代码的重构

版本一:
实现存储用户的名字:
remember_me.py
#易择365
from pathlib import Path
import json
username = input("请输入你的名字:")
path = Path('username.json')
contents = json.dumps(username)
path.write_text(contents)
print(f"已经记录了你的名字是:{username}!")
向名字已被存储的用户发出问候:
greet_user.py
#易择365
from pathlib import Path
import json
path = Path('username.json')
contents = path.read_text()
username = json.loads(contents)
print(f"欢迎回来, {username}!")

版本二:合并两个模块

remember_me.py

#易择365
from pathlib import Path
import json
def greet_user():
    """问候用户,并说出其名字"""
    path = Path('username.json')
    if path.exists():
        user = path.read_text()
        username = json.loads(user)
        print(f"欢迎回来, {username}!")
    else:
        username = input("请输入你的名字:")
        user = json.dumps(username)
        path.write_text(user)
        print(f"已经记录了你的名字:{username}!")
 

版本三:重构方法

抽取出获取用户名

remember_me.py

#易择365
from pathlib import Path
import json
def get_stored_username(path):
    if path.exists():
        user = path.read_text()
        username = json.loads(user)
        return username
    else:
        return None
def greet_user():
    """问候用户,并说出其名字"""
    path = Path('username.json')
    username = get_stored_username(path)
    if username:
        print(f"欢迎回来, {username}!")
    else:
        username = input("请输入你的名字:")
        user = json.dumps(username)
        path.write_text(user)
        print(f"已经记录了你的名字:{username}!")

继续抽取输入用户名:

#存储用户输入的名字:易择365
from pathlib import Path
import json
def get_stored_username(path):
    """读取存储的用户名字"""
    if path.exists():
        con=path.read_text()
        u_name=json.loads(con)
        return u_name
    else:
        return None
def get_new_username(path):
    """存储用户名字"""
    u_name=input("请输入你的名字:")
    con=json.dumps(u_name)
    path.write_text(con)
    return u_name
     
def greet_user():
    """问候用户"""
    path=Path('username.json')
    u_name=get_stored_username(path)
    if u_name:
        print(f"欢迎回来:{u_name}")
    else:
        u_name=get_new_username(path)
        print(f"已经记录了你的名字:{u_name}")

版本四:存储用户更多的信息

#存储用户输入的名字:易择365
from pathlib import Path
import json
def get_stored_username(path):
    """读取存储的用户名字"""
    if path.exists() and path.read_text():
            con=path.read_text()
            user=json.loads(con)
            return user
    else:
        return None
def get_new_username(path):
    """存储用户名字"""
    user={}
    user['u_name']=input("输入名字:")
    user['u_age']=input("输入年龄:")
    user['u_sex']=input("输入性别:")
    con=json.dumps(user)
    path.write_text(con)
    return user
     
def greet_user():
    """问候用户"""
    path=Path('username.json')
    user=get_stored_username(path)
    if user:
        print(f"欢迎您:{user['u_name']}")
    else:
        user=get_new_username(path)
        print(f"已经记录了你的名字:{user['u_name']}")

版本五:当前用户是否是上次运行该程序的用户

#易择365
from pathlib import Path
import json
def get_stored_username(path):
    """读取存储的用户名字"""
    if path.exists() and path.read_text():
            con=path.read_text()
            user=json.loads(con)
            return user
    else:
        return None
def get_new_username(path):
    """存储用户名字"""
    user={}
    user['u_name']=input("输入名字:")
    user['u_age']=input("输入年龄:")
    user['u_sex']=input("输入性别:")
    con=json.dumps(user)
    path.write_text(con)
    return user

def get_username_ask(user):
    req=input(f"{user['u_name']}是您的用户名吗?输入如:y/n")
    return req

def greet_user():
    """问候用户"""
    path=Path('username.json')
    user=get_stored_username(path)
    if user:
        if get_username_ask(user)=='y':
            print(f"欢迎您:{user['u_name']}")
        else:
            user=get_new_username(path)
            print(f"已经记录了你的名字:{user['u_name']}")
    else:
        user=get_new_username(path)
        print(f"已经记录了你的名字:{user['u_name']}")
每个函数都执行单一而清晰 的任务,要编写出清晰且易于维护和扩展的代码,这种划分必不可少。
Python代码重构是指对现有的Python代码进行修改和优化,以提高代码的可读性、可维护性和效率。以下是几个常见的Python代码重构技巧: 1. 合并嵌套的if语句。将多个嵌套的if语句合并成一个更简洁的条件表达式,可以提高代码的可读性和简洁性。 2. 使用函数来封装重复的代码片段。如果在代码中存在重复的代码片段,可以将其封装为一个函数,提高代码的可维护性和复用性。 3. 使用列表解析或生成器表达式代替for循环。列表解析和生成器表达式可以简化代码并提高执行效率。 4. 使用内置函数和方法代替自定义的功能。Python提供了许多内置函数和方法,可以简化代码并提高执行效率。 5. 使用适当的数据结构和算法。选择合适的数据结构和算法可以提高代码的运行效率和性能。 6. 遵循Pythonic的编码风格。Pythonic是指符合Python最佳实践和编码风格的代码。遵循Pythonic的编码风格可以使代码更加简洁和易读。 7. 优化代码的性能。通过使用适当的算法和数据结构、减少重复计算、避免不必要的循环等方式,可以提高代码的性能。 这些重构技巧可以帮助改进Python代码的质量,并使其更加Pythonic,即符合Python的设计哲学和最佳实践。通过重构代码,可以使代码更易于理解、扩展和维护。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [8个重构技巧使得Python代码Pythonic](https://blog.csdn.net/weixin_38754337/article/details/128945714)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *2* [Python函数综合案例.md](https://download.csdn.net/download/qq_42431718/88241199)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值