Python学习笔记:函数与类

来源:互联网 发布:石油数据网站 编辑:程序博客网 时间:2024/06/08 07:00

函数:

1.创建函数:函数是可以调用的(可能包含参数,也就是放在圆括号中的值),它执行某种行为并且返回一个值。内建的callable函数可以用来判断函数是否可调用:

>>>import math>>>x=1>>>y=math.sqrt>>>callable(x)False>>>callable(y)True

使用 def 语句定义函数:

def hello(name):return 'Hello, '+name+'!'

形参的名字任意指定,但是return语句则用来从函数中返回值。


2.记录函数:给函数写文档可以加上注释(以#开头),也可以在def语句后面(以及在模块或者类的开头)直接写字符串。如果在函数的开头写下字符串,则作为函数的一部分进行存储,这称为文档字符串。

def square(x):'Calculateds the square of the number x.'return x*x
文档字符串可以按如下方式访问:

>>>square.__doc__'Calculates the square of the number x'


3.可以没有返回值而直接使用return,实际上一个None值将被返回。


4.传值调用和传引用调用的影响与java中的情形相同。


5.关键字参数:可以在传参数的时候直接指定名字与对应的值从而不遵守形参的定义顺序。在函数定义的时候为形参提供关键字参数可以给形参提供默认值。


6.定义形参的时候如果使用星号,如:

def print_params(*params):print params

则可以收集参数,在调用的时候传入多个参数将被当做元组收集起来。

若使用两个星号,并且在传入参数的时候使用关键字参数,则将作为字典收集起来。

该特性可以反过来使用,即在定义形参的时候定义了多个值,传入实参的时候加上星号传入元组或者两个星号传入字典。


7.作用域:命名空间或者作用域会创建一个不可见的字典。除了全局作用域外,每个函数调用都会创建一个新的作用域。这种字典可以用内建函数 vars 来返回。


类:

1.创建类的语法:

__metaclass_=typeclass Person:def setName(self, name):self.name=namedef getName(self):return self.namedef greet(self):print "Hello, world! I'm %s. " % self.name

在调用创建的对象的函数时,对象会自动将自己作为第一个参数传入函数中——因此形象地命名为self。 成员方法通过 self来访问他们要对其特性进行操作的本身。


2.私有化:

Python并不直接支持私有化,但是可以达到私有特性的效果:

为了让方法或者特性变为私有,只要在它的名字前面加上双下划线即可。

但是实际上还是有办法可以访问到。


3.指定父类:将其他类名写在class语句后面的圆括号内可以指定父类。括号里放多个其他类名可以实现多继承。