开发者社区> 王小王-123> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

初识Python之面向对象篇(下)

简介: 初识Python之面向对象篇
+关注继续查看
'''生成器'''
def fib(max):
    a,b=1,1
    while a <max:
        yield a
        a,b=b,a+b
for n in fib(15):
    print(n)

def xie():
    print("等待接收任务......")
    while True:
        data=(yield )
        print("收到任务:",data)
def producer():
    c=xie()
    c.__next__()
    for i in range(5):
        print("发送一个任务......","任务%d"%i)
        c.send("任务%d"%i)
if __name__=="__main__":
    producer()

image.png

'''装饰器'''
'''装饰器可以解决我们在实际开发当中,减轻我们代码的重复率,提高效率'''
def window(run):
    def wrapper(*args,**bian):#定义了一个包装器函数
        print("植入木马中......")
        run(*args,**bian)
        print("木马已经渗入......")
    return wrapper
@window
def worm(x):
    a=[]
    for i in range(x):
        a.append(i)
    print(a)
@window
def str(name):
    print("hello",name)
if __name__=="__main__":
    worm(10)
    print()
    str("h7n9病毒")

image.png

def deco(func):
    def _deco(a,b):
        print("在函数myfunc()之前被调用。")
        ret=func(a,b)#这里必须要将装饰器里面的参数实例化,不然不会产生效益
        print("在函数myfunc()之前被调用,结果是:%s"%ret)
        return ret
    return _deco
@deco
def myfunc(a,b):
    print("函数myfunc(%s,%s)被调用!"%(a,b))
    return a+b
myfunc(4,2)
myfunc(10,16)

image.png


# 使用装饰器装饰类
def zz(myclass):
    class InnerClass:
        def __init__(self,z=0):
            self.z=z
            self.wrapper=myclass()
        def position(self):
            self.wrapper.position()
            print('z轴坐标:',self.z)
    return InnerClass
@zz
class coordination:
    def __init__(self,x=0,y=0):
        self.x=x
        self.y=y
    def position(self):
        print("x轴坐标:",self.x)
        print("y轴坐标:",self.y)
if __name__=="__main__":
    coor=coordination()
    coor.position()

image.png

'''命名空间'''
'''涉及到全局变量和局部变量,这里必须要明确两个访问函数
local()可以访问局部命名空间
globals()函数可以访问全局变量
'''
def func(i,str):
    x=123321
    print(locals())
func(1,"wangxiaowang")#包括了调用函数的复杂语法书写,简化了代码

image.png

'''闭包'''
def func(name):
    def inner_func(age):
        print("name",name,"\t","age",age)
    return inner_func
bb=func("笑傲江湖")#调用func的时候就开始产生了一个闭包inner_func,里面有自己的name,就算函数执行完后,name依然会存在的
bb(19)

def delay_fun(x,y):
    def caculator():#使用嵌套函数,实现延迟求和功能
        return x+y
    return caculator
if __name__=="__main__":
    print("返回一个可以求和的函数,但是不去求和!")
    msum=delay_fun(3,4)
    print()
    print("返回一个计算值!")
    print(msum())

image.png


'''装饰器与闭包'''
def deco(func):
    def _deco():
        print("函数闭包实现......")
        func()#这里才是调用了,所以此函数中只有该函数是实例化了,里面的闭包其实没有调用和打印
        print("函数闭包实现中......")
    return _deco#只是返回了它的值,并没有调用
@deco#f=deco(f)
def f():
    print("使用装饰器实现中......")
if __name__=="__main__":
    f()#知道第二次才返回_deco的值,也就是打印了,这个就是闭包的神奇之处。

image.png

'''使用闭包定义泛型函数'''

def fan(a,b):
    def afan(x):
        return a* x+b
    return afan
if __name__=="__main__":
    fan23=fan(2,3)
    fan25=fan(2,5)
    print("调用函数实现:",fan23(4))
    print("调用函数熟悉:",fan25(6))

image.png


总结


学完Python的面向对象之后,我们发现它其实也不是想象中的那么难,我们要知道Java的基础语言就是基于类的叠加,所以大家学习Python还是要把基础打牢,这样才能真正的学以致用。后期我也会推出《初识Java之系列篇章》希望有兴趣的小伙伴继续关注小王,我们一起“快乐代码,精彩人生”。


后期我将继续推出Python编程的一些语法,比如文件操作,异常处理,多线程开发等,同时我也会设置一个专栏《初识爬虫之系列篇章》,到时候有兴趣的小伙伴,可以来看看。


好的,本期文章我们就到这里了,我们下期文章再会!


文章已被收录至官方知识档案


版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
Python - 面向对象编程 - 三大特性之继承(下)
Python - 面向对象编程 - 三大特性之继承(下)
12 0
python 面向对象
python 面向对象思想
33 0
【python】面向对象
1.简单写个例子,因为之前基本没写过python OOP。先写个父类 class Animal: # 构造方法 def __init__(self, name): self.
923 0
python-面向对象之继承
一、继承介绍 继承是一种新建类的方式,新建的类称之为子类或者派生类,被继承的类称为父类/基类/超类 python中继承的特点:   1.子类可以遗传/重用父类的属性   2.子类可以有多个父类   3.Python中的继承类分为新式类和经典类     新式类:继承了object的类,以及他的子类都是新式类     经典类:没有继承object的类,以及他的子类都是经典类     在Python3中,没有显示的声明,默认继承object类,所有的类都是新式类     在Python2中才区分新式类和经典类,没有显示继承任何类,也不会继承object类。
935 0
初学Python——面向对象(二)
一、抽象类、接口类和抽象接口 转自博客园魏恒https://www.cnblogs.com/weihengblog/p/8528967.html (一)接口类   什么是接口类?在继承中,我们可以声明某个子类继承自某基类,这个基类是个接口类,在接口类中定义了接口名(函数名)且并未实现接口的功能,子类继承接口类,并实现接口中的功能。
1023 0
Python 面向对象
转两篇Python的面向对象文章 。稍后再看看国外的书是怎么写的。 Python 面向对象(初级篇)http://python.jobbole.com/82023/ python 面向对象(进阶篇)http://python.
866 0
初识python中的类与对象
类的概念与定义 在生活中,我们走在路边,看到一辆车,大脑中首先想到的是“这是一辆车, 然后才是这是一辆什么牌子的车”,在这里,我们就用到了编程中的类的概念。 同样的,看到一条小狗,也会先想到这是一条狗,然后会想到这是一条什么品种的狗。
723 0
+关注
王小王-123
快乐代码,精彩人生!
268
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载
冬季实战营第三期:MySQL数据库进阶实战
立即下载