0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

python基础知识点(二)

python爬虫知识分享 来源:python爬虫知识分享 作者:python爬虫知识分享 2022-04-01 17:03 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

默认参数最好不为可变对象

函数的参数分三种

可变参数

默认参数

关键字参数

这三者的具体区别,和使用方法在 廖雪峰的教程 里会详细的解释。这里就不搬运了。

今天要说的是,传递默认参数时,新手很容易踩雷的一个坑。

先来看一个示例

deffunc(item,item_list=[]):
item_list.append(item)
print(item_list)

func('iphone')
func('xiaomi',item_list=['oppo','vivo'])
func('huawei')

在这里,你可以暂停一下,思考一下会输出什么?

思考过后,你的答案是否和下面的一致呢

['iphone']
['oppo','vivo','xiaomi']
['iphone','huawei']

如果是,那你可以跳过这部分内容,如果不是,请接着往下看,这里来分析一下。

Python 中的 def 语句在每次执行的时候都初始化一个函数对象,这个函数对象就是我们要调用的函数,可以把它当成一个一般的对象,只不过这个对象拥有一个可执行的方法和部分属性。

对于参数中提供了初始值的参数,由于 Python 中的函数参数传递的是对象,也可以认为是传地址,在第一次初始化 def 的时候,会先生成这个可变对象的内存地址,然后将这个默认参数 item_list 会与这个内存地址绑定。

在后面的函数调用中,如果调用方指定了新的默认值,就会将原来的默认值覆盖。如果调用方没有指定新的默认值,那就会使用原来的默认值。

访问类中的私有方法

大家都知道,类中可供直接调用的方法,只有公有方法(protected类型的方法也可以,但是不建议)。也就是说,类的私有方法是无法直接调用的。

这里先看一下例子

classKls():
defpublic(self):
print('Hellopublicworld!')

def__private(self):
print('Helloprivateworld!')

defcall_private(self):
self.__private()

ins=Kls()

#调用公有方法,没问题
ins.public()

#直接调用私有方法,不行
ins.__private()

#但你可以通过内部公有方法,进行代理
ins.call_private()

既然都是方法,那我们真的没有方法可以直接调用吗?

当然有啦,只是建议你千万不要这样弄,这里只是普及,让你了解一下。

#调用私有方法,以下两种等价
ins._Kls__private()
ins.call_private()

时有时无的切片异常

这是个简单例子

my_list=[1,2,3,4,5]
print(my_list[5])

执行一下,和我们预期的一样,会抛出索引异常。

Traceback(mostrecentcalllast):
File"F:/PythonScript/test.py",line2,in
print(my_list[5])
IndexError:listindexoutofrange

但是今天要说的肯定不是这个,而是一个你可能会不知道的冷知识。

来看看,如下这种写法就不会报索引异常,执行my_list[5:],会返回一个新list:[]。

my_list=[1,2,3]
print(my_list[5:])

哪些情况下不需要续行符

在写代码时,为了代码的可读性,代码的排版是尤为重要的。

为了实现高可读性的代码,我们常常使用到的就是续行符\

>>>a='talkischeap,'\
...'showmethecode.'
>>>
>>>print(a)
talkischeap,showmethecode.

那有哪些情况下,是不需要写续行符的呢?

经过总结,在这些符号中间的代码换行可以省略掉续行符:[],(),{}

>>>my_list=[1,2,3,
...4,5,6]

>>>my_tuple=(1,2,3,
...4,5,6)

>>>my_dict={"name":"MING",
..."gender":"male"}

另外还有,在多行文本注释中''',续行符也是可以不写的。

>>>text='''talkischeap,
...showmethecode'''

上面只举了一些简单的例子。

但你要学会举一反三。一样的,在以下这些场景也同样适用

类,和函数的定义。

列表推导式,字典推导式,集合推导式,生成器表达式。

Py2 也可以使用 print()

我相信应该有不少人,思维定式,觉得只有 Py3 才可以使用 print(),而 Py2 只能使用print ''。

今天,小明要为 Py2 正名一次。

在Python 2.6之前,只支持

print"hello"

在Python 2.6和2.7中,可以支持如下三种

print"hello"
print("hello")
print("hello")

Python3.x中,可以支持如下两种

print("hello")
print("hello")


审核编辑:汤梓红
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 参数
    +关注

    关注

    11

    文章

    1870

    浏览量

    34030
  • python
    +关注

    关注

    58

    文章

    4885

    浏览量

    90302
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    示波器小知识点

    示波器的系统带宽:是指一个逐渐升高频率的正弦输入信号显示幅度下降3dB时的频率。测试信号一般是方波,而方波信号由基波及奇次谐波组成。如果用示波器去测一个方波,需要注意示波器应从频率上能够测量到它
    的头像 发表于 04-16 11:04 81次阅读
    示波器小<b class='flag-5'>知识点</b>

    【黑金云课堂笔记】第一~知识点总结

    知识卡片一:【FPGA 基础篇】开启硬件编程之门 FPGA 的本质 : FPGA(现场可编程门阵列)并非在运行软件程序,而是在 构建电路本身 。用户可以通过 Verilog/VHDL 等硬件描述
    的头像 发表于 04-01 16:10 222次阅读

    【黑金云课堂笔记】第三期知识点总结

    ,对 FPGA 免费直播课的热情也感染到了黑金云课堂的老师们。接下来我们会再接再厉,把每一期直播都做得更扎实   更多精彩课程欢迎关注我们 黑金云课堂全年免费直播课 ,现在让我们先来回顾一下上周的知识点精华——   数据类型 常量 进制表示:进制(b/B)、八进制(o/
    的头像 发表于 04-01 16:08 172次阅读
    【黑金云课堂笔记】第三期<b class='flag-5'>知识点</b>总结

    labview编程及基础知识分享

    最近建了一个公众号,本人会在上面进行labview编程知识的分享,欢迎大家关注;公众号叫:上位机知识分享LABVIEW
    发表于 02-13 10:08

    阻燃系列基础知识

    我很荣幸有机会在这里与大家分享我对阻燃系列基础知识的研究。今天,我们将探讨的主题是“阻燃系列基础知识”。在我们日常生活中,火灾事故频发,造成巨大的财产损失和人员伤亡。因此,了解阻燃材料的基础知识对于
    的头像 发表于 02-06 08:07 590次阅读
    阻燃系列<b class='flag-5'>基础知识</b>

    无刷电机驱动器的基础知识

    本文将从技术角度出发,对三相无刷电机的电机驱动器的作用、种类和规格进行介绍。通过本文,您可以学习到电机驱动器选型所需的基础知识
    的头像 发表于 12-10 14:13 6902次阅读
    无刷电机驱动器的<b class='flag-5'>基础知识</b>

    模拟电路入门的知识点

    1.在常温下,硅极管的门槛电压约为0.5V,导通后在较大电流下的正向压降约为0.7V;锗极管的门槛电压约为0.1V,导通后在较大电流下的正向压降约为0.2V。 2、极管的正向电阻小;反向电阻
    发表于 12-05 08:21

    RK 平台 Vendor Storage 开发指南:基础知识、流程与实用技巧

    备可靠性校验、掉电恢复等关键特性,是保障设备身份标识、功能授权等核心信息安全的重要组件。本文将从基础知识、开发流程、使用途径三方面,为开发者梳理完整的开发逻辑。 一、核心基础知识:了解 Vendor Storage 是什么? 1. 核心定位与核心特性 Vendor Sto
    的头像 发表于 11-22 07:11 1167次阅读
    RK 平台 Vendor Storage 开发指南:<b class='flag-5'>基础知识</b>、流程与实用技巧

    视觉工程师必须知道的工业相机基础知识

    工业相机基础知识概述。
    的头像 发表于 09-19 17:04 1693次阅读
    视觉工程师必须知道的工业相机<b class='flag-5'>基础知识</b>

    【「Yocto项目实战教程:高效定制嵌入式Linux系统」阅读体验】01初读体验

    已阅读部分 由于知识点属于循序渐进,目前花了几天时间读到了第4章, 第一章到第章,主要讲yocto相关的背景知识,主要讲解linux系统以及yocto相关的概念,学习资源,作者的心得体会之类的内容
    发表于 06-30 21:49

    跟老齐学Python:从入门到精通

    本帖最后由 yuu_cool 于 2025-6-3 16:52 编辑 本资料是面向编程零基础读者的Python 入门教程,内容涵盖了Python基础知识和初步应用。以比较轻快的风格,向零基
    发表于 06-03 16:10

    【「# 运算放大器参数解析与LTspice应用仿真」阅读体验】+全书概览与第一章阅读分享

    先来详细阅读下第一章,分享下相关内容。 第一章主要介绍运放的基础知识,学过模电的都很容易理解,可能教材上学过的忘记了, 这里可以作为摘出来的重点温故知新复习下。全文没有废话,都是娓娓道来各个知识点
    发表于 05-22 23:18

    C51单片机及C语言知识点必备秘籍

    单片机关键知识点一览: 系列一 1:单片机简叙 2:单片机引脚介绍 3:单片机存储器结构 4:第一个单片机小程序 5:单片机延时程序分析 6:单片机并行口结构 7:单片机的特殊
    发表于 05-15 14:00

    电机选型计算公式与知识点汇总

    纯分享帖,需要者可点击附件获取完整资料~~~*附件:电机选型计算公式与知识点汇总.pdf 【免责声明】内容转自今日电机,因转载众多,无法确认真正原始作者,故仅标明转载来源。版权归原出处所有,纯分享帖,侵权请联系删除内容以保证您的权益。
    发表于 04-29 16:10

    模拟电路入门100个知识点

    1.在常温下,硅极管的门槛电压约为0.5V,导通后在较大电流下的正向压降约为0.7V;锗极管的门槛电压约为0.1V,导通后在较大电流下的正向压降约为0.2V。 2、极管的正向电阻小;反向电阻
    发表于 04-25 15:51