关键知识:函数注释与help内嵌函数,关键字参数,收集参数,反转参数。
一、python的函数
>>> def square(x):
'cal the square of the number'
return x*x
>>> square.__doc__
'cal the square of the number'
>>> help(square)
Help on function square in module __main__:
square(x)
cal the square of the number
>>>
C语言的函数形参都是位置参数,即位置很重要。
python有关键字参数,就是说函数形参的名称很重要,是传值的依据。
参数可以带默认值,可以传全部或部分参数。
收集参数(一个*是收集位置参数,**是收集关键字参数)
>>> def pp(*var):
print var
>>> pp('test')
('test',)
>>> pp(1,2,3)
(1, 2, 3) //返回元组(tuple) or list(列表)
>>> pp()
()
>>>
>>> def pp(*var):
print (var)
>>> pp('test')
('test',)
>>> pp(1,2,3)
(1, 2, 3)
>>> pp()
()
>>> def pp2(**var):
print (var)
>>> pp2(x=1,y=2,z=3)
{'x': 1, 'y': 2, 'z': 3} //返回字典dict。
这就是说,函数通过收集参数转化为list和字典dict。
>>> pp2(x=1,y=2,z=3)
{'x': 1, 'y': 2, 'z': 3}
反转操作:直接向函数传list参数进去:
>>> def add(x,y):
return x+y
>>> param=(1,2)
>>> add(*param)
3
>>>
直接向函数传dict参数进去:
>>> def hello_3(greeting='hello',name='world'):
print ('%s,%s' % (greeting,name))
>>> hello_3()
hello,world
>>> hello_3(name='Tan')
hello,Tan
>>> param={'name':'Tan','greeting':'Well met'}
>>> hello_3(**param)
Well met,Tan
>>>
面向对象(object)的学习,作为一门高级的强大的语言,
python必须是支持面向对象编程。
多态,就是同样的一个方法,表现为多种形态:
1、比如多个不同对象,如多种商品,但都支持getPrice()方法。
2、同样是+号,可以支持1+2,也可以支持"hello"+"world"
self指针,指向对象本身,有点象C++ 的this指针。
为了让方法或特性变为私有(private),只要在它的前面加上双下划线就可以__。
class Secre:
def __inacessible(self):
print("Bet you can not see me!")
def __init__(self,name):
self.name=name
name1=name #name1只属于_init_方法,其它类方法不能使用!
所以,self的作用就是申请一个pulic属性。
>>> class Cal:
def cal(self,exp):
self.value=eval(exp)
>>> class Talker:
def talk(self):
print ('hi my value is',self.value)
>>> class TalkCal(Cal,Talker): //继承两个类的方法。python感觉比C++的类要简洁许多!
pass
>>> tc = TalkCal()
>>> tc.cal('1+2*3')
>>> tc.talk()
hi my value is 7
>>>
异常:
>>> try:
1/0
except NameError:
print('unknown')
else:
print('That went well!')
finally:
print('clean up.')
clean up.
Traceback (most recent call last):
File "<pyshell#54>", line 2, in <module>
1/0
ZeroDivisionError: division by zero
>>>
魔法方法,属性和迭代器。
构造函数:__init__(),这个是固定的名字。
一、python的函数
>>> def square(x):
'cal the square of the number'
return x*x
>>> square.__doc__
'cal the square of the number'
>>> help(square)
Help on function square in module __main__:
square(x)
cal the square of the number
>>>
C语言的函数形参都是位置参数,即位置很重要。
python有关键字参数,就是说函数形参的名称很重要,是传值的依据。
参数可以带默认值,可以传全部或部分参数。
收集参数(一个*是收集位置参数,**是收集关键字参数)
>>> def pp(*var):
print var
>>> pp('test')
('test',)
>>> pp(1,2,3)
(1, 2, 3) //返回元组(tuple) or list(列表)
>>> pp()
()
>>>
>>> def pp(*var):
print (var)
>>> pp('test')
('test',)
>>> pp(1,2,3)
(1, 2, 3)
>>> pp()
()
>>> def pp2(**var):
print (var)
>>> pp2(x=1,y=2,z=3)
{'x': 1, 'y': 2, 'z': 3} //返回字典dict。
这就是说,函数通过收集参数转化为list和字典dict。
>>> pp2(x=1,y=2,z=3)
{'x': 1, 'y': 2, 'z': 3}
反转操作:直接向函数传list参数进去:
>>> def add(x,y):
return x+y
>>> param=(1,2)
>>> add(*param)
3
>>>
直接向函数传dict参数进去:
>>> def hello_3(greeting='hello',name='world'):
print ('%s,%s' % (greeting,name))
>>> hello_3()
hello,world
>>> hello_3(name='Tan')
hello,Tan
>>> param={'name':'Tan','greeting':'Well met'}
>>> hello_3(**param)
Well met,Tan
>>>
面向对象(object)的学习,作为一门高级的强大的语言,
python必须是支持面向对象编程。
多态,就是同样的一个方法,表现为多种形态:
1、比如多个不同对象,如多种商品,但都支持getPrice()方法。
2、同样是+号,可以支持1+2,也可以支持"hello"+"world"
self指针,指向对象本身,有点象C++ 的this指针。
为了让方法或特性变为私有(private),只要在它的前面加上双下划线就可以__。
class Secre:
def __inacessible(self):
print("Bet you can not see me!")
def __init__(self,name):
self.name=name
name1=name #name1只属于_init_方法,其它类方法不能使用!
所以,self的作用就是申请一个pulic属性。
>>> class Cal:
def cal(self,exp):
self.value=eval(exp)
>>> class Talker:
def talk(self):
print ('hi my value is',self.value)
>>> class TalkCal(Cal,Talker): //继承两个类的方法。python感觉比C++的类要简洁许多!
pass
>>> tc = TalkCal()
>>> tc.cal('1+2*3')
>>> tc.talk()
hi my value is 7
>>>
异常:
>>> try:
1/0
except NameError:
print('unknown')
else:
print('That went well!')
finally:
print('clean up.')
clean up.
Traceback (most recent call last):
File "<pyshell#54>", line 2, in <module>
1/0
ZeroDivisionError: division by zero
>>>
魔法方法,属性和迭代器。
构造函数:__init__(),这个是固定的名字。