python学习(3):函数和类。

关键知识:函数注释与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__(),这个是固定的名字。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

草根大哥

进军大神程序员路上,谢谢支持!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值