Python基础教程---读书笔记六

简介:

1. callable()函数用来判断函数是否可以调用,返回True/False,Python 3.0后不可用。

2. 定义函数:'def function(parameter1, parameter2,...):'。

3. 文档字符串:在函数的开头写下字符串;使用__doc__或者help()函数访问

   >>> def myfun(x):

   ...     'This is my function to print x.'

   ...     print 'x=', x

   ...

   >>> myfun.__doc__

   'This is my function to print x.'

   >>> help(myfun)

4. 函数中return默认返回的是None.

5. 函数参数存储在局部作用域,字符串、数字和元组不可改变,但是列表和字典是可以改变。

6. 函数有位置参数和关键字参数,后者可以用来设置默认值。

7. 当函数的参数数量不定时,使用星号(*)和双星号(**);'*'针对元组,'**'针对字典;

   >>> def print_params(title, *pospar, **keypar):

   ...     print title

   ...     print pospar

   ...     print keypar

   ...

   >>> print_params('Test:', 1, 3, 4, key1=9, key2='abc')

   Test:

   (1, 3, 4)

   {'key2': 'abc', 'key1': 9}

   >>> print_params('Test:')

   Test:

   ()

   {}

   >>>

   >>> param1 = (3, 2)

   >>> param2 = {'name': 'def', 'age': 20}

   >>> print_params('Test1:', *param1, **param2)

   Test1:

   (3, 2)

   {'age': 20, 'name': 'def'}

8. 如果变量名相同,函数内的局部变量会屏蔽全局变量,除非使用golbal声明为全局变量。


9. 类的方法可以在外部访问,甚至绑定到一个普通函数上或者被其他变量引用该方法

   >>> class Bird:

   ...     song = 'Squaawk!'

   ...     def sing(self):

   ...             print self.song

   ...

   >>> bird = Bird()

   >>> bird.sing()

   Squaawk!

   >>> birdsong = bird.sing

   >>> birdsong()

   Squaawk!

   >>>

   >>> def newsing():

   ...     print "I'm new sing"

   ...

   >>> bird.sing = newsing

   >>> bird.sing()

   I'm new sing


10. 如果想要定义私有方法,可以在方法前加上下划线

   >>> class Bird:

   ...     def __sing(self):

   ...             print "I'm singing!"

   ...     def ex_sing(self):

   ...             self.__sing()

   ...

   >>> bird = Bird()

   >>> bird.ex_sing()

   I'm singing!

   >>> bird.__sing()

   Traceback (most recent call last):

   File "<stdin>", line 1, in <module>

   AttributeError: Bird instance has no attribute '__sing'


11. 注意类的命名空间使得所有类的实例都可以访问的变量

   >>> class MemberCounter:

   ...     members = 0

   ...     def init(slef):

   ...             MemberCounter.members += 1

   上面类MemberCounter中的members变量像是一个c++中的static变量


12. 继承超类的方法:class SPAMFilter(Filter, SaveResult);

   注意当多个超类拥有相同名称的方法是,前面的(Filter)的方法会覆盖后面的(SvaeResult);

   用isssubclass(SPAMFilter, Filter)函数判断一个累是否是另一个类的子类;

   用类的特殊属性__bases__查看类的基类,SPAMFilter.__bases__



本文转自jazka 51CTO博客,原文链接:http://blog.51cto.com/jazka/1345030,如需转载请自行联系原作者


相关文章
|
5天前
|
测试技术 PHP 索引
CANopen for Python 使用教程(二)
CANopen for Python 使用教程(二)
20 5
|
5天前
|
XML 编解码 数据可视化
MoJoCo 入门教程(六)Python LQR 教程
MoJoCo 入门教程(六)Python LQR 教程
7 2
MoJoCo 入门教程(六)Python LQR 教程
|
8天前
|
区块链 Python
最详细Python打包exe教程,并修改图标,只需30秒
最详细Python打包exe教程,并修改图标,只需30秒
20 4
最详细Python打包exe教程,并修改图标,只需30秒
|
10天前
|
数据采集 人工智能 自然语言处理
从零开始学AI:Python完整操作教程
本教程详尽介绍了利用Python进行人工智能操作的核心方法与应用场景,涵盖数据预处理、模型训练与评估全过程。通过源码解析和实战案例(如房价与股票价格预测),读者将学会构建与测试AI模型,并理解其优缺点。教程还探讨了AI在智能客服与医疗诊断等领域的应用,以及如何通过单元测试确保代码质量。通过本教程,初学者能够快速掌握AI基本技能,为未来的技术发展奠定坚实基础。
53 4
从零开始学AI:Python完整操作教程
|
2天前
|
XML 程序员 数据格式
豆瓣评分8.6!Python社区出版的Python故事教程,太强了!
Python 是活力四射的语言,是不断发展中的语言。就连使用 Python 多年的行者也不敢说对 Python 的方方面面都了解并可以自由运用,想必读者可能更加无法快速掌握所有重点技巧了。 今天给小伙伴们分享的这份手册是用互动的开发故事来探讨Pyfhonic开发的故事书籍,是一本Python语言详解书籍,由Python的行者根据自身经验组织而成,是为从来没有听说过Python的其他语言程序员准备的一份实用的导学性质的书,笔者试图将优化后的学习体验,通过故事的方式传达给读者。对于零基础的小白来说更建议入门后再来品读。
|
21天前
|
存储 JSON 数据格式
Python教程:json中load和loads的区别
【7月更文挑战第17天】在Python的`json`模块中, `load`与`loads`函数均用于JSON至Python对象的转换, 区别在于: - **`loads`**处理JSON格式的**字符串** 其中`data.json`文件内容为`{&quot;name&quot;: &quot;Bob&quot;, &quot;age&quot;: 30}`。 简而言之, `loads`用于字符串, 而`load`用于文件对象。根据数据来源选择合适的方法。
|
1月前
|
数据采集 小程序 数据库
20年“镇国级”IT大牛,竟搞出500页漫画Python零基础顶级教程!
乔布斯说每个人都应该学习一门编程语言。Python正热,我决定通过编程让自己习得一种思考问题的方式,这也是我在个人编程生涯中的最大收获。 我以为只能枯燥无味地学编程,直到看到本书的样章,以漫画形式让我更直观、生动地了解到什么是编程。超级喜欢这种漫画风格。我回想起自己当年学习编程语言时的情景:逼迫自己背诵和消化、吸收那些自己根本没有理解的内容。如果当时有这么一本书,我就不会学得那么艰难,然后用了那么久才摸索成为一名“攻城狮”。
|
26天前
|
网络协议 开发者 Python
网络编程小白秒变大咖!Python Socket基础与进阶教程,轻松上手无压力!
【7月更文挑战第25天】在网络技术快速发展的背景下, Python因其简洁的语法和强大的库支持成为学习网络编程的理想选择。
42 5
|
1月前
|
数据采集 存储 JSON
Python 数据抓取教程:完结篇
Python 数据抓取教程:完结篇
33 1
|
25天前
|
SQL 安全 Go
SQL注入不可怕,XSS也不难防!Python Web安全进阶教程,让你安心做开发!
【7月更文挑战第26天】在 Web 开发中, SQL 注入与 XSS 攻击常令人担忧, 但掌握正确防御策略可化解风险. 对抗 SQL 注入的核心是避免直接拼接用户输入至 SQL 语句. 使用 Python 的参数化查询 (如 sqlite3 库) 和 ORM 框架 (如 Django, SQLAlchemy) 可有效防范. 防范 XSS 攻击需严格过滤及转义用户输入. 利用 Django 模板引擎自动转义功能, 或手动转义及设置内容安全策略 (CSP) 来增强防护. 掌握这些技巧, 让你在 Python Web 开发中更加安心. 安全是个持续学习的过程, 不断提升才能有效保护应用.
35 1

热门文章

最新文章