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,如需转载请自行联系原作者


相关文章
|
18天前
|
存储 Python
SciPy 教程 之 SciPy 稀疏矩阵 4
SciPy 教程之 SciPy 稀疏矩阵 4:介绍稀疏矩阵的概念、类型及其在科学计算中的应用。SciPy 的 `scipy.sparse` 模块提供了处理稀疏矩阵的工具,重点讲解了 CSC 和 CSR 两种格式,并通过示例演示了如何创建和操作 CSR 矩阵。
41 3
|
5天前
|
Python
SciPy 教程 之 Scipy 显著性检验 6
显著性检验是统计学中用于判断样本与总体假设间是否存在显著差异的方法。SciPy的scipy.stats模块提供了执行显著性检验的工具,如T检验,用于比较两组数据的均值是否来自同一分布。通过ttest_ind()函数,可以获取两样本的t统计量和p值,进而判断差异是否显著。示例代码展示了如何使用该函数进行T检验并输出结果。
9 1
|
7天前
|
Python
SciPy 教程 之 Scipy 显著性检验 3
本教程介绍Scipy显著性检验,包括其基本概念、原理及应用。显著性检验用于判断样本与总体假设间的差异是否显著,是统计学中的重要工具。Scipy通过`scipy.stats`模块提供了相关功能,支持双边检验等方法。
15 1
|
9天前
|
机器学习/深度学习 Python
SciPy 教程 之 SciPy 插值 2
SciPy插值教程:介绍插值概念及其在数值分析中的应用,特别是在处理数据缺失时的插补和平滑数据集。SciPy的`scipy.interpolate`模块提供了强大的插值功能,如一维插值和样条插值。通过`UnivariateSpline()`函数,可以轻松实现单变量插值,示例代码展示了如何对非线性点进行插值计算。
12 3
|
12天前
|
机器学习/深度学习 数据处理 Python
SciPy 教程 之 SciPy 空间数据 4
本教程介绍了SciPy的空间数据处理功能,主要通过scipy.spatial模块实现。内容涵盖空间数据的基本概念、距离矩阵的定义及其在生物信息学中的应用,以及如何计算欧几里得距离。示例代码展示了如何使用SciPy计算两点间的欧几里得距离。
29 5
|
11天前
|
机器学习/深度学习 Python
SciPy 教程 之 SciPy 空间数据 6
本教程介绍了SciPy处理空间数据的方法,包括使用scipy.spatial模块进行点位置判断、最近点计算等内容。还详细讲解了距离矩阵的概念及其应用,如在生物信息学中表示蛋白质结构等。最后,通过实例演示了如何计算两点间的余弦距离。
23 3
|
10天前
|
机器学习/深度学习 数据处理 Python
SciPy 教程 之 SciPy 空间数据 7
本教程介绍了SciPy的空间数据处理功能,涵盖如何使用`scipy.spatial`模块进行点的位置判断、最近点计算等操作。还详细解释了距离矩阵的概念及其在生物信息学中的应用,以及汉明距离的定义和计算方法。示例代码展示了如何计算两个点之间的汉明距离。
19 1
|
14天前
|
Python
SciPy 教程 之 SciPy 图结构 7
《SciPy 教程 之 SciPy 图结构 7》介绍了 SciPy 中处理图结构的方法。图是由节点和边组成的集合,用于表示对象及其之间的关系。scipy.sparse.csgraph 模块提供了多种图处理功能,如 `breadth_first_order()` 方法可按广度优先顺序遍历图。示例代码展示了如何使用该方法从给定的邻接矩阵中获取广度优先遍历的顺序。
25 2
|
15天前
|
算法 Python
SciPy 教程 之 SciPy 图结构 5
SciPy 图结构教程,介绍图的基本概念和SciPy中处理图结构的模块scipy.sparse.csgraph。重点讲解贝尔曼-福特算法,用于求解任意两点间最短路径,支持有向图和负权边。通过示例演示如何使用bellman_ford()方法计算最短路径。
27 3
|
15天前
|
缓存 测试技术 Apache
告别卡顿!Python性能测试实战教程,JMeter&Locust带你秒懂性能优化💡
告别卡顿!Python性能测试实战教程,JMeter&Locust带你秒懂性能优化💡
32 1

热门文章

最新文章

下一篇
无影云桌面