python编程中文名_Python编程实战中遇到的几种需要化名的情境
函数化名只是化名的一种应用场景,还有好几种使用化名的地方,本篇笔记将整理小结我所遇到的各种化名。
情境A:导入时化名
导入其它模块时,直接化名为简约版,是我相当常用的,甚至有一些业界约定俗成的化名。无论是模块,模块中的函数或变量,都可以此种方式化名简化之。
# 业界约定俗成的一些化名
import pandas as pd
import numpy as np
# 自定义模块与自定义函数的化名
from zhihu_base import get_all_topics_detail as zhihu
我编程时给函数或变量命名的习惯是,让人一看到名字就能知道该它是做什么的,如此以来名称就会挺长。函数因为要被调用,尤其是外部调用,写的复杂点倒能理解。但如果是一个不被外部调用的变量,为什么不直接在定义变量时就定义一个简约的名字呢?
情境B:同一行语句多次调用名字,临时简化
这里有一种情境,调用该变量的大部分语句都相对简约,用全称更易读,但偶尔有一句复杂的语句,要多次调用该变量,导致该语句特别长,此时要临时要用一个变量化名,简化代码。
在学习过程中有什么不懂得可以加我的
python学习扣扣qun,784758214
群里有不错的学习视频教程、开发工具与电子书籍。
与你分享python企业当下人才需求及怎么从零基础学习好python,和学习什么内容
sql_search = 'select url_token,zhihu_name,lase_active_time from zhihu_whos_v;'
df_topics_details = pd.read_sql(sql_search,conn)
# 这里省略很多代码
# 此时出现一条相对复杂冗长的语句,多次出现该变量名
df_value_v = df_topics_details[(df_topics_details['upvotecount']>100000) & (df_topics_details['last_activity']>'2019-09-01') ]
该语句是为了把 df_topics_details 这个数据集之中,符合条件 upvotecount > 100000 且 last_activity >'2019-09-01'的数据筛选出来,是 pandas 中相当常用的语句。后来我发现,在这种多次调用某个变量名或函数名的语句中,可以临时加一个化名,来简化该语句长度。像这样:
df_topics_details = dtd
df_value_v = dtd[(dtd['upvotecount']>100000) & (dtd['last_activity']>'2019-09-01') ]
但是这种化名,并不适合在定义该变量时就如此做。试想我一开始就把该变量定义为 dtd,其余许多行代码会极其不易读——我或者代码的其它读者完全无法理解dtd指代什么。如果更多变量都采用这种风格,代码的可读性将有多糟糕啊!
情境C:文件对象化名
其实文件对象化名这个说法倒不准确,本质上是变量的赋值:把一个特定的文件对象赋值给一个变量来指代保管。单独拎出来,是因为它太高频使用了。类似fw或者fr,writer也是约定俗成的命名习惯。
实例 X:
fw = open("my_test.txt", "at")
fw.write("xue.cn 月收费仅15元,对编程自学者相当友好。")
fw.close()
实例Y:
with open("my_test.txt", "at") as fw:
fw.write("xue.cn 可以在网页上一边阅读一边在线写代码。")
实例Z:
comms_file = output_path + 'xuecn_comments_statistics_' + str(datetime.datetime.now())[:10] + '.xlsx'
with pd.ExcelWriter(comms_file) as writer:
comms_counts_monthly.to_excel(writer, sheet_name='留言月报')
comms_counts_weekly.to_excel(writer, sheet_name='留言周报')
comms_counts_daily.to_excel(writer, sheet_name='留言日报')
comms_by_reg_date.to_excel(writer, sheet_name='每日激活用户的留言情况')
comms_by_reg_week.to_excel(writer, sheet_name='每周激活用户的留言情况')
comms_counts_by_hour.to_excel(writer, sheet_name='留言活跃时段')
vote_by_name.to_excel(writer, sheet_name='用户获赞')
name_count_by_vote.to_excel(writer, sheet_name='用户获赞的分布')
vote_by_content.to_excel(writer, sheet_name='留言获赞')
content_count_by_vote.to_excel(writer, sheet_name='留言获赞的分布')
情境D:化名是通用的操作
sql 语句也有“化名”的方法,用的关键词和python导入时所用到的 as 是一样的。
在学习过程中有什么不懂得可以加我的
python学习扣扣qun,784758214
群里有不错的学习视频教程、开发工具与电子书籍。
与你分享python企业当下人才需求及怎么从零基础学习好python,和学习什么内容
with data as(
select
date(created_at) as time,
user_id
from user_comments
union all
select
date(created_at) as time,
user_id
from user_activities
)
select
time,
count(distinct user_id) as 每日学习用户数
from data
group by time
order by time
def who_is_v_detail
小结
我比较少细究某个化名,到底是对函数、变量或对象进行化名。核心在于,化名只是给名字复杂的东西,另外取了一个简单好记的指代他,不管名字如何,那东西的特性不变,所指代的总还是ta。
好似某个人叫“因缺思厅·尼古拉斯·蒋·巴斯帝国五世·一品带刀侍卫·阿拉斯加·狗蛋·王”,你可以简称他:老王。
“化名”是编程和日常生活中普遍存在的现象,只不过具体在某个语言中,它通过什么关键词或语法来实现而已。
python编程中文名_Python编程实战中遇到的几种需要化名的情境相关推荐
- python编程模式_Python编程中的反模式
原标题:Python编程中的反模式 这篇文章收集了我在Python新手开发者写的代码中所见到的不规范但偶尔又很微妙的问题. 本文的目的是为了帮助那些新手开发者渡过写出丑陋的Python代码的阶段. 对 ...
- python编程规则_python编程规则
广告关闭 腾讯云11.11云上盛惠 ,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高返5000元! 只有写一个完整的不依赖系统命令(如,复杂的程序)的情况下才有必要用到python ...
- python编程狮_Python编程狮-零基础学Python
Python编程狮是W3Cschool编程狮旗下专门为零基础Python编程爱好者打造的一款入门工具App,致力于帮助初学者入门,轻松迈入编程世界.学Python,从这里开始! [零基础也能学]初学者 ...
- Java编程兵书,在实战中体会编程的快乐,初学和自学者的福音
前言 Java 是由 Sun Microsystems 公司于 1995 年 5 月推出的 Java 面向对象程序设计语言和 Java 平台的总称.由 James Gosling和同事们共同研发,并在 ...
- python编程优势_Python编程的优势是什么
Python编程的优势是什么 发布时间:2020-06-26 13:54:14 来源:亿速云 阅读:110 作者:Leah Python编程的优势是什么?针对这个问题,这篇文章详细介绍了相对应的分析和 ...
- python元组索引_Python—范围元组中的元素索引
有时,在处理Python数据时,我们会遇到一个问题,即需要在列表中的连续等距元组中找到元素位置.这个问题在许多领域都有应用,包括日常编程和竞争编程.让我们来讨论执行此任务的某些方式.输入:test撸l ...
- python绘画海贼王_Python爬虫实战之(三)| 一个海贼迷的呐喊
作者:xiaoyu 微信公众号:Python数据科学 知乎:Python数据分析师 <10> 海贼王已经10年了,一路陪伴了我们的点点滴滴.它热血,激情,感人,欢乐,吸引了无数男女老少的紧 ...
- python隐藏部分代码_python隐藏类中属性的3种实现方法
方法一: 效果图一: 代码一: # 定义一个矩形的类 class Rectangle: # 定义初始化方法 def __init__(self,width,height): self.hidden_w ...
- python字符串转义序列_Python | 忽略字符串中的转义序列
python字符串转义序列 First see, how escape sequence works? 首先看,转义序列如何工作? In the below example, we are using ...
最新文章
- php lodop 实例,Vue使用lodop实现打印小结
- 半路学编程,可以成为大牛吗?
- Java跨域请求cooking共享,关于HTML5中的sessionStorage和localStorage
- python sklearn安装_安装 scikit-learn
- 计算机网络(九)——简述Socket
- 牛!这本 Python 3.6 的书火爆了 IT 圈!
- Redis各个数据类型的使用场景
- c语言课程设计实训主要目的,《C语言课程设计实验大纲.doc
- html 嵌入word 插件,利用VenoBox插件在网页中悬浮显示word文档
- PHP 图片转PDF
- 陈强教授《机器学习及R应用》课程 第十二章作业
- 10个免费网页统计与分析工具
- rpa项目poc_RPA POC概述
- 用Python的networkx绘制精美网络图
- 鲜为人知的“水”凶猛
- springboot整合flyway出现Correct the classpath of your application so that it contains a single,compatibl
- 炒菜机器人的弊端_饭店用智能炒菜机器人的好处
- 【大唐杯学习超快速入门】5G技术原理仿真教学——5G网络组网部署
- 选择题自动填充系统至尊版使用教程
- Android Telephony 分析【全】
热门文章
- android内存释放处理
- 边缘计算网关是什么?有什么功能和特点?
- win10 LATEX 安装使用 支持前向 后向 (TeX Live 2021+VSCode【不需要额外下载PDF阅览器,不需要跟换任何路径】)
- mysql 启停脚本_mysql自己编写启停脚本
- E. Pencils and Boxes codeforces(思维+dp)
- UNIX编程学习——more指令实现
- 视频会议软件Zoom隐私安全问题大爆发
- Spring Boot 之 Spring Data JPA(一)
- Unable to allocate xxx GiB for an array with shape (xxxx, xxxx)
- VUE图片裁剪组件,基于VueCropper