python:函数、类、对象

'''

1.简介

 

2.函数

2.1函数的定义

2.2函数的调用

2.3函数文档

2.4函数参数

 

2.4.1位置参数  这些参数在调用时,位置要固定

def functionanme(arg1):

    dunctionsuit

    return [expression]

  

2.4.2默认参数  

def functionname(arg1,arg2=v):

    functionsuit

    return [expression]

arg2 = v 

默认参数=默认值,调用函数时,如果默认参数的值如果没有传入,则被默认为默认值

默认参数要放在位置参数后面,不然会报错

 

调用函数时,参数的顺序可以和声明的顺序不一致

 

2.4.3可变参数  参数的数量是可变的,可以是1,2,3,4...个 ,ards相当于一个元组

def functionname(arg1,arg2=v,*args):

    functionsuit

    return [expression]

def printinfo(arg,*s):

    print(arg)

    for i in s:

        print(i)

printinfo(1,1,2,3,4,5,6)

 

2.4.4关键字参数  可以是0个到任意个,自动组装成一个字典,kw相当于一个字典

def functionname(arg1,arg2=v,*args,**kw):

    functionsuit

    return [expression]

def printinfo(arg1,*args,**kw):

    print(arg1)

    print(args)

    print(kw)

    

printinfo(1,2,3)  

1

(2, 3)

{}

 

printinfo(1,2,3,a=4,b=5,c=6)

1

(2, 3)

{'a': 4, 'b': 5, 'c': 6}

 

2.4.5命名关键字参数

 

2.4.6参数组合

参数定义的顺序必须是:

位置参数、默认参数、可变参数、关键字参数

位置参数、默认参数、命名关键字参数、关键字参数

 

定义可变参数和关键字参数的语法:

*args是可变参数,args接收的是一个元组

**kw是关键字参数,kw接收的是一个字典



 

2.5函数的返回值


 

2.6变量作用域

闭包


 

3.lambda表达式

3.1匿名函数的定义

python中有两类函数

第一类:用def关键字定义的正规函数

第二类:用lambda定义的匿名函数

lambda argument_list:expression

argument_list:可以是位置参数、可以是默认参数、可以是可变参数、可以是关键字参数

expression:一个表达式

lambda匿名函数没有return,因为它本身结果就是一个返回值

lambda匿名函数有自己的命名空间,不能调用它参数列表外或全局命名空间的参数。

 

a = lambda x:x**2

print([a(x)  for x in range(10)])

[0, 1, 4, 9, 16, 25, 36, 49, 64, 81]

 

3.2匿名函数的应用

函数式编程:我的理解就是参数输入,待结果输出后,参数不变;

 

匿名函数常用于函数式编程的高阶函数,主要形式有两种:

1、参数是函数(filter,map)

2、返回值是函数(closure)

 

filter(function,iterable)

odd = lambda x:x%2==1

templist = filter(odd,[1,2,3,4,5,6,7,8,9])   返回一个迭代器对象

print(list(templist))    可用list转换为列表

 

map(function,*iterables)

m1 = map(lambda x:x**2,[1,2,3,4,5])    [1,4,9,16,25]

m2 = map(lambda x,y:x+y,[1,2,3],[4,5,6]) [5,7,9]

 

自定义高阶函数

list = [1,2,3,4,5]

1、求和

def my_func(func,argslist);

    return func(argslist)

my_func(sum,list)   =   15

 

2、求列表长度

my_func(len,list)  = 5

 

3、求平均值

my_func(lambda x:sum(x)/len(x),argslist)  =  3



 

4.类与对象

类就是一个模具,对象是模具造出的模型!

封装:信息隐蔽技术

继承:子类自动继承父类的属性和方法,并且子类可以增加自己的属性或方法,或重写父类的方法

多态:不同对象使用同一方法的响应不同

self:类中的方法都要自带一个self,代指实例出来的对象本身

__int__(self,args):初始化方法,当对象实例化前,自动调用该初始化函数,初始化一些对象的属性

公有和私有:在变量名或函数名前加__表明私有

 

4.1属性与方法组成对象

4.2self是什么?

4.3python的魔法方法

4.4公有和私有

4.5继承

4.6组合

4.7类、类对象和实例对象

4.8什么是绑定

4.9一些相关的内置函数

issubclass(Aclass,Bclass) 判断Aclass是否是Bclass的子类,是返回True;不是则返回False

isinstance(obj,class)判断一个对象是否是一个类的实例,是返回True;不是返回False

hasattr(obj,name) 判断一个对象是否包含对应属性

getattr(obj,name,default)返回一个对象的属性值

setattr(obj,name,value)设置一个对象的属性值

delattr(obj,name)删除一个对象的属性


 

5.魔法方法

5.1基本的魔法方法

 

5.2算数运算符

5.3反算术运算符

5.4增量赋值运算

5.5一元运算符

5.6属性访问

5.7描述符

5.8定制序列

5.9迭代器



 

'''

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值