首页 > 其他分享 >提升代码可读性的十八条建议5

提升代码可读性的十八条建议5

时间:2024-08-30 11:53:03浏览次数:5  
标签:count __ 可读性 代码 user 十八条 全局变量 self def

13. 避免过多的参数

函数或方法的参数应该尽可能少,过多的参数会使得函数难以理解和使用。

不整洁(错误):

def create_user(name, age, gender, email, phone, address, country, state, city, zip_code):
    pass

整洁(正确):

class User:
    def __init__(self, name, age, gender, email, phone, address):
        pass

# 或者使用字典或其他结构来封装参数
def create_user(user_data):
    pass

修复说明:

  • 使用类或数据结构来封装相关的参数,减少函数签名的复杂度。

14. 使用描述性的变量名

变量名应该清晰地描述变量的用途。

不整洁(错误):

a = 3.14  # 什么是a?
r = 5
area = a * r * r

整洁(正确):

PI = 3.14
radius = 5
circle_area = PI * radius * radius

修复说明:

  • 使用具有描述性的变量名代替模糊的单字母变量名。

15. 避免不必要的全局变量

全局变量应该被视为最后的选择,因为它们可能导致代码难以追踪和维护。

不整洁(错误):

# 某个全局变量
user_count = 0

def increment_user_count():
    global user_count
    user_count += 1

整洁(正确):

class UserCounter:
    def __init__(self):
        self.count = 0

    def increment(self):
        self.count += 1

修复说明:

  • 使用类或其他封装方法来管理原本由全局变量承担的状态。

标签:count,__,可读性,代码,user,十八条,全局变量,self,def
From: https://blog.csdn.net/hebtu666/article/details/141637093

相关文章

  • 在数小时内构建 CRM:你需要了解的顶级无代码/低代码工具
    或许你在阅读这篇文章时,心里会有一个疑问:在类似Salesforce这样强大的传统CRM系统已经如此成熟的今天,为什么企业还需要选择用低代码或无代码平台来构建CRM呢?传统CRM系统确实功能强大,但它们也有一些不可忽视的痛点。对于很多企业,尤其是中小型企业,高昂成本和复杂性让他们望而......
  • 代码随想录day45 || 115 不同子序列, 583 两个字符串删除操作, 72 编辑距离
    115不同子序列funcnumDistinct(sstring,tstring)int{ //动态规划,思考一下判断连续和不连续的区别,如果相等都是左上角+1,如果不等,连续情况就是直接等于左上角,不连续情况直接归零 //dp[i][j]表示s[i]中存在t[j]结尾的的个数 //递推公式,不要求连续字串,所以,如果s[i......
  • 基于奇异值分解的MVDR算法功率谱估计附Matlab代码
    MVDR(MinimumVarianceDistortionlessResponse)算法是一种常用于信号处理领域的功率谱估计方法,该算法利用奇异值分解(SingularValueDecomposition,SVD)来实现对信号的空间滤波,从而提高功率谱估计的准确性和可靠性,本文将介绍MVDR算法的原理并提供使用Matlab编写的源代码示例。MV......
  • vb6.0版本钢琴简谱播放程序代码QZQ-2024-8-30
    OptionExplicitConstINVALID_NOTE=-1’Codeforkeyboardkeysthatwedon’thandleDimnumDevicesAsLong’numberofmidioutputdevicesDimcurDeviceAsLong’currentmidideviceDimhmidiAsLong’midioutputhandleDimrcAsLong’return......
  • VB版本电子琴简谱播放器代码QZQ-2024-8-30
    OptionExplicitPrivateDeclareSubSleepLib“kernel32”(ByValdwMillisecondsAsLong)PrivateConstsColr=&H4000&DimmmAsVariant'不再使用NewsMidi,而是使用Variant类型,可以存储不同类型的数据PrivateDeclareFunctionmidiOutCloseLib“winmm.dl......
  • VB版本MIDI钢琴简谱播放器全代码QZQ-2024-8-30
    PrivateDeclareFunctionGetKeyState%Lib“user32”(ByValnVirtKeyAsLong)PrivateDeclareSubSleepLib“kernel32”(ByValdwMillisecondsAsLong)PrivatesuduAsIntegerPrivateConstVK_LBUTTON&=&H1PrivateisOgainAsBoolean'是否重复按键Pri......
  • vscode-snippets,教你一个#include打出所有所需代码
    前言之前在打cf之类的比赛的时候总能看到别人的代码最开始总是一大串的火车头,相信也有人和我一样很喜欢这样的火车头,喜欢这样的风格化代码(别人能不能看懂是另外一回事)。但是每次复制粘贴这些火车头就很麻烦,有没有什么办法能一键打出火车头呢,这里提供一种思路,帮你一个#include打出......
  • PageOffice6国产Linux系统最简集成代码(Asp.Net)
    本文描述了PageOffice产品在普通的Asp.Net项目中如何集成调用。PageOffice国产版:支持信创系统,支持银河麒麟V10和统信UOS,支持X86(intel、兆芯、海光等)、ARM(飞腾、鲲鹏、麒麟等)、longarch芯片架构。新建Asp.Net项目:PageOffice6-Net-Simple在您的web项目的“依赖项-包-管理NuGet......
  • 代码随想录算法day3 - 链表1
    题目1203.移除链表元素给你一个链表的头节点head和一个整数val,请你删除链表中所有满足Node.val==val的节点,并返回新的头节点。示例1:输入:head=[1,2,6,3,4,5,6],val=6输出:[1,2,3,4,5]示例2:输入:head=[],val=1输出:[]示例3:输入:head=[7,7,7,7],v......
  • 每天分享一个FPGA开源代码(1)- spi
    1、SPI总线进行通信的结构 SPI总线主要包括四根关键信号线:(1)SCK(SerialClock)串行时钟线,由主设备产生,控制数据传输的速率和时机。(2)MOSI(MasterOutSlaveIn)主设备数据输出线,数据由主设备发送给从设备。(3)MISO(MasterInSlaveOut)从设备数据输出线,数据由从设备发......