资讯专栏INFORMATION COLUMN

小李飞刀:python的2018年倒数二杀!

GraphQuery / 2507人阅读

摘要:主要用于,设定函数的默认值,但并不改变原有的函数。比如对函数设定额外的参数改为八进制来进行整数转化。此时就是创建出来的一个全新的函数。模块模块要尽可能的不和内置函数产生冲突。题外话面向对象的设计思想是抽象出,根据创建。

随便叨叨

真的是很话唠的在下了。
昨天没有很完整的学习,就没有发布笔记了。
昨天主要是匆匆忙忙的回家了,买了好吃的法棍回家,好吃的法棍简直是战斗力的最佳保证!
然后和家里人聊聊天,其实平时对着电脑多了,对着电脑聊天总是不如面对面来的有感觉。
PS:但是还是很讨厌接到工作上的完全没逻辑的电话的。
2018的最后两天。
我很想念小胡哥哥,大概这个地方他都看不到的吧,毕竟学术上我们俩的交叉是极少的。
希望2019年会变成更好的自己,也能拥有更多掌握自己生活的能力。

开始认真学习的分割

简单打点鸡血吧!
大学时候很喜欢的一段话。
每一个优秀的人,都有一段沉默的时光。那一段时光,是付出了很多努力,忍受孤独和寂寞,不抱怨,不诉苦,日后说起时,连自己都能被感动的日子。

偏函数Partial function

不同于高数里的偏函数。
这个属于Python的functools里提供的一个很有用的功能。
主要用于,设定函数的默认值,但并不改变原有的函数。
比如对int()函数设定额外的参数base=8改为八进制来进行整数转化。

#正常情况下
int("12345",base = 8)
#或者我们考虑自己定义个函数int2
def int2(x,base=8):
    return int(x,base)

functools.partial就不需要自己另外定义函数。

import functools
int2 = functools.partial(int,base=2)

此时int2()就是创建出来的一个全新的函数。

简单总结functools.partial的作用就是,把一个函数的某些参数给固定住(也就是设置默认值),返回一个新的函数,调用这个新函数会更简单。

然鹅这个偏函数,还可以在另外加入参数。

当函数的参数个数太多,需要简化时,使用functools.partial可以创建一个新的函数,这个新函数可以固定住原函数的部分参数,从而在调用时更简单。

在使用中应该要多考虑下使用场景,又是反复使用偏函数可能会产生反效果(个人感觉,还需要实践测试)。

模块

模块要尽可能的不和内置函数产生冲突。
为了不和别人的模块冲突,所以有了包。包名不冲突,那所有的模块就不会冲突了。
每一个包目录下面都会有一个__init__.py的文件,这个文件是必须存在的,否则,Python就把这个目录当成普通目录,而不是一个包。
因为有了包,有了模块,所以可以产生多级的文件树。

使用模块

sys模块下有一个argv参数,用list存储命令行的所有参数。
所以argv必定有至少一个参数,就是文件名。

if __name__=="__main__":
    test()

当命令行运行hello模块文件时候,Python解释器把特殊变量__name__置为__main__,而如果在其他地方导入该hello模块时候,if判断将失效。

比如当进入交互模式时候,导入hello模块,不会直接执行test()函数,需要调用。

作用域

在Python里,我们通过_前缀来实现私有变量。
分为正常的朋友、特殊的朋友、和暗搓搓的朋友。
正常的朋友就是正常可以直接引用的。
特殊的朋友,比如__xx__这个样子的,虽然可以被直接引用,但是有特殊用途。比如可以暴露我身份的__author__就是特殊变量啦。
然后_xx这个样子的朋友,就是暗搓搓的朋友们啦,非公开的,不应该直接被引用。

def _private_1(name):
    return "Hello, %s" % name

def _private_2(name):
    return "Hi, %s" % name

def greeting(name):
    if len(name) > 3:
        return _private_1(name)
    else:
        return _private_2(name)

在模块内公开greeting()函数,但是内部逻辑用私有函数隐藏,这样调用的时候就不考虑内部逻辑。
非常有用的代码封装和抽象的方法
外部需要引用的函数才定义为public,不需要引用的全部定义成private

安装第三方模块
在Python中,安装第三方模块,是通过包管理工具pip完成的。

然鹅这一步,在Mac或者Linux下是不需要安装pip的。(悲伤的windows鹅,幸好安装Python的时候妥妥安装了

第三方库一般都有官方注册

安装常用模块

用Anaconda,一个基于Python的数据处理和科学计算平台,已经内置很多有用的第三方库。

Anaconda会把系统Path中的python指向自己自带的Python,并且,Anaconda安装的第三方模块会安装在Anaconda自己的路径下,不影响系统已安装的Python目录。

可以尝试直接import numpy等已安装的第三方模块

模块搜索路径

添加自己的搜索目录,有俩办法

修改sys.path,添加要搜索的目录

import sys
sys.path.append("/user/gaga/my_py_scriptss")

-设置环境变量PYTHONPATH,不影响Python自身的搜索路径。

面向对象编程

emmm,真是个令人悲伤的标题。
Object Oriented Programming--->所以OOP才是一种程序设计思想吗?....只是思想....

OOP把对象作为程序的基本单元,一个对象包含了数据和操作数据的函数。

突然觉得OOP是一个很浪漫的思想。(题外话)

面向对象的设计思想是抽象出Class,根据Class创建Instance。
面向对象的抽象程度又比函数要高,因为一个Class既包含数据,又包含操作数据的方法。
类和实例

类的定义是使用class关键字。

-----困了的分界线,明日继续分解下一回合...(好像明日2019年??? 今晚小酌一杯再来继续!

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/42916.html

相关文章

  • 小李飞刀:飞呀飞呀python骄傲放纵

    摘要:虽然还在一个城市里,但是感觉有了更多的自己的时间。但是有土办法也有聪明的办法。所以更高级的抽象化是需要逐步适应的。最近已经开始刷啦,受小伙伴感染,后续也会开始写习题本啦 小小唠叨几句 这几天都没有更新,不代表我没有学习吖!这两天都在忙着半夜,终于有了自己的小窝,一直住家里,突然搬出来心情还满奇特的。虽然还在一个城市里,但是感觉有了更多的自己的时间。比如现在是晚上十点,在家的话可能还有很...

    Jacendfeng 评论0 收藏0
  • 小李飞刀python第一杀

    摘要:新年快乐年终于来了,突然觉得有点如释重负。大概年实在是太沉重了吧。年应该是要充满拼劲的一年希望可以成功转型自己喜欢的职业。开始认真学习了鸡血一波。建议类的属性名和实例属性名不要重复,否则类的属性名会覆盖。 新年快乐 2019年终于来了,突然觉得有点如释重负。大概2018年实在是太沉重了吧。2019年应该是要充满拼劲的一年!!!!希望可以成功转型自己喜欢的职业。 开始认真学习了 鸡血一波...

    glumes 评论0 收藏0
  • 小李飞刀python你在前面飞,欲饮琵琶马上催

    摘要:南京现在算是我的一个治愈城市了,带着重重的悲伤去,幸好落雪的瞬间将我治愈。年,世界和平,平安喜乐。继承与多态继承就是从现有的类进行继承,被继承的为超类或者父类也就是爸爸,新的类为子类。 叨叨点啥 2018年的最后一天。回顾这一年,获得很多也失去很多。今年去了很多的地方,成都,重庆,峨眉山,天津,杭州,南京。杭州是我特别喜欢的城市,有很多美好的记忆,也有很多失落的时刻。南京现在算是我的一...

    K_B_Z 评论0 收藏0
  • 小李飞刀python老师我今天没有灵感起名字了

    摘要:用匿名函数有个好处,因为函数没有名字,不必担心函数名冲突。此外,匿名函数也是一个函数对象,也可以把匿名函数赋值给一个变量,再利用变量来调用该函数也可以把匿名函数作为返回值返回。 日常唠嗑 最近对数据岗位看了不少,感觉经验和技术都是很必要的门槛,要更加的努力啊。今天看了Alex大叔的2019年运,感觉真的是很需要变革的一年了。转型和脱离舒适圈应该是2019年比较重要的关键词了。 show...

    hlcfan 评论0 收藏0
  • 小李飞刀python你慢点飞,我脑子还在后面追

    摘要:默认参数设置默认参数时,有几点要注意一是必选参数在前,默认参数在后,否则的解释器会报错二是如何设置默认参数。注意此处,获得的其实是的拷贝,函数内对的改变不会影响到。使用递归函数需要注意防止栈溢出。 总是在最前面的叨逼叨 最近总是在想成长这两个很常常被提起的事情,这对于一个已经25岁的半中年而言,已经是一个不太能高频提起的词。但是,最近一些事情吧,总让我觉得我的生长期似乎比正常人来的晚了...

    kevin 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<