摘要: 描述: classmethod修饰符对应的函数不需要实例化,不需要self参数,但第一个参数需要是表示自身类的cls参数,可以来类的属性,类的方法,实例化对象等。 返回值: 返回函数的类方法 实例1: #!/usr/bin/python # -*- coding: UTF-8 -*- class A 阅读全文
posted @ 2020-08-28 15:47 马里奥本奥 阅读(159) 评论(0) 推荐(0)
摘要: 把变量从内存中变成可存储或传输的过程称之为序列化,在Python中叫pickling。序列化之后,就可以把序列化后的内容写入磁盘,或者通过网络传输到别的机器上。反过来,把变量内容从序列化的对象重新读到内存里称之为反序列化,即unpickling。 ​Python提供了pickle模块来实现序列化。 阅读全文
posted @ 2020-08-28 15:45 马里奥本奥 阅读(208) 评论(0) 推荐(0)
摘要: 操作文件和目录的函数一部分在os模块中,一部分在os.path模块中。 查看、创建和删除目录: # 查看当前目录的绝对路径 >>> os.path.abspath('.') '/Users/michael' # 在某个目录下创建一个新目录,首先把新目录的完整路径表示出来 >>> os.path.jo 阅读全文
posted @ 2020-08-28 15:43 马里奥本奥 阅读(88) 评论(0) 推荐(0)
摘要: 1、读文件 以读文件的模式打开一个文件对象,使用python内置的open()函数 >>> f = open('/Users/michael/test.txt', 'r') 如果文件不存在,open()函数就会抛出一个IOError的错误,并给出错误码和详细的信息 >>> f=open('/User 阅读全文
posted @ 2020-08-28 15:42 马里奥本奥 阅读(132) 评论(0) 推荐(0)
摘要: try: try: print('try...') r = 10 / 0 print('result:', r) except ZeroDivisionError as e: print('except:', e) finally: print('finally...') print('END') 阅读全文
posted @ 2020-08-28 15:41 马里奥本奥 阅读(121) 评论(0) 推荐(0)
摘要: 枚举类和元类 枚举类 from enum import Enum Month = Enum('Month', ('Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec')) 可以直接使用Mon 阅读全文
posted @ 2020-08-28 15:40 马里奥本奥 阅读(124) 评论(0) 推荐(0)
摘要: __slots__ 正常情况下,当我们定义了一个class,创建了一个class的实例后,我们可以给该实例绑定任何属性和方法,这就是动态语言的灵活性。但是,如果我们想要限制实例的属性怎么办? 为了达到限制的目的,Python允许在定义class的时候,定义一个特殊的__slots__变量,来限制该c 阅读全文
posted @ 2020-08-28 15:38 马里奥本奥 阅读(93) 评论(0) 推荐(0)
摘要: 实例属性与类属性 由于Python是动态语言,根据类创建的实例可以任意绑定属性。 给实例绑定属性的方法是通过实例变量,或者通过self变量: class Student(object): def __init__(self, name): self.name = name s = Student(' 阅读全文
posted @ 2020-08-28 15:37 马里奥本奥 阅读(113) 评论(0) 推荐(0)
摘要: 继承和多态 们定义一个class的时候,可以从某个现有的class继承,新的class称为子类(Subclass),而被继承的class称为基类、父类或超类(Base class、Super class)。 当子类和父类都存在相同的run()方法时,我们说,子类的run()覆盖了父类的run(),在 阅读全文
posted @ 2020-08-28 15:35 马里奥本奥 阅读(106) 评论(0) 推荐(0)
摘要: 以Student类为例,在Python中,定义类是通过class关键字: class Student(object): pass ​ class后面紧接着是类名,即Student,类名通常是大写开头的单词,紧接着是(object),表示该类是从哪个类继承下来的,继承的概念我们后面再讲,通常,如果没有 阅读全文
posted @ 2020-08-28 15:32 马里奥本奥 阅读(191) 评论(0) 推荐(0)
摘要: 在Python中,一个.py文件就称之为一个模块(Module)。 如果不同的人编写的模块名相同怎么办? 为了避免模块名冲突,Python又引入了按目录来组织模块的方法,称为包(Package)。 举个例子,一个abc.py的文件就是一个名字叫abc的模块,一个xyz.py的文件就是一个名字叫xyz 阅读全文
posted @ 2020-08-28 15:31 马里奥本奥 阅读(93) 评论(0) 推荐(0)
摘要: Python的functools模块提供了很多有用的功能,其中一个就是偏函数(Partial function)在介绍函数参数的时候,我们讲到,通过设定参数的默认值,可以降低函数调用的难度。 举例如下: int()函数可以把字符串转换为整数,当仅传入字符串时,int()函数默认按十进制转换: >>> 阅读全文
posted @ 2020-08-28 15:24 马里奥本奥 阅读(134) 评论(0) 推荐(0)
摘要: 定义函数: >>> def now(): ... print('2015-3-25') ... >>> f = now >>> f() 2015-3-25 函数对象有一个__name__属性,可以拿到函数的名字: >>> now.__name__ 'now' >>> f.__name__ 'now' 阅读全文
posted @ 2020-08-28 15:23 马里奥本奥 阅读(98) 评论(0) 推荐(0)
摘要: 在Python中,对匿名函数提供了有限支持。 关键字lambda表示匿名函数,冒号前面的x表示函数参数。 匿名函数有个限制,就是只能有一个表达式,不用写return,返回值就是该表达式的结果。 用匿名函数有个好处,因为函数没有名字,不必担心函数名冲突。此外,匿名函数也是一个函数对象,也可以把匿名函数 阅读全文
posted @ 2020-08-28 15:22 马里奥本奥 阅读(105) 评论(0) 推荐(0)
摘要: 高阶函数除了可以接受函数作为参数外,还可以把函数作为结果值返回。 # 通常情况下,求和的函数是这样定义的: def calc_sum(*args): ax = 0 for n in args: ax = ax + n return ax # 但是,如果不需要立刻求和,而是在后面的代码中,根据需要再计 阅读全文
posted @ 2020-08-28 15:21 马里奥本奥 阅读(132) 评论(0) 推荐(0)
摘要: Python内置的sorted()函数就可以对list进行排序: >>> sorted([36, 5, -12, 9, -21]) [-21, -12, 5, 9, 36] 此外,sorted()函数也是一个高阶函数,它还可以接收一个key函数来实现自定义的排序,例如按绝对值大小排序: >>> so 阅读全文
posted @ 2020-08-28 15:16 马里奥本奥 阅读(111) 评论(0) 推荐(0)
摘要: python内建得filter()函数用于过滤序列。和map()类似,filter()也接收一个函数和一个序列,返回iterator。filter()把传入的函数依次作用于每个元素,然后根据返回值是True还是False决定保留还是丢弃该元素。 在一个list中,删掉偶数,只保留奇数,可以这么写: 阅读全文
posted @ 2020-08-28 15:15 马里奥本奥 阅读(208) 评论(0) 推荐(0)
摘要: MAP函数 map()函数接收两个参数,一个是函数,一个是Iterable,map将传入的函数依次作用到序列的每个元素,并把结果作为新的Iterator返回。 >>> def f(x): ... return x * x ... >>> r = map(f, [1, 2, 3, 4, 5, 6, 7 阅读全文
posted @ 2020-08-28 15:13 马里奥本奥 阅读(226) 评论(0) 推荐(0)
摘要: 函数名也是变量 传入函数 既然变量可以指向函数,函数的参数能接收变量,那么一个函数就可以接收另一个函数作为参数,这种函数就称之为高阶函数。 一个最简单的高阶函数: def add(x, y, f): return f(x) + f(y) 当我们调用add(-5, 6, abs)时,参数x,y和f分别 阅读全文
posted @ 2020-08-28 15:12 马里奥本奥 阅读(138) 评论(0) 推荐(0)
摘要: 可以直接作用于for循环的数据类型有: 集合数据类型:list、tuple、dict、set、str generator,包括生成器和带yield的generator function。 这些可以直接作用于for循环的对象统称为可迭代对象:Iterable。 可以使用isinstance()判断一个 阅读全文
posted @ 2020-08-28 15:05 马里奥本奥 阅读(111) 评论(0) 推荐(0)
摘要: 创建一个生成器 >>> L = [x * x for x in range(10)] >>> L [0, 1, 4, 9, 16, 25, 36, 49, 64, 81] >>> g = (x * x for x in range(10)) >>> g <generator object <gene 阅读全文
posted @ 2020-08-28 15:03 马里奥本奥 阅读(138) 评论(0) 推荐(0)
摘要: 异常分别位除零错误(ZeroDivisionError)、命名错误(NameError))、类型错误(TypeError) 1、异常处理 >>> while True: ... try: ... x = int(input("Please enter a number: ")) ... break 阅读全文
posted @ 2020-08-28 15:02 马里奥本奥 阅读(154) 评论(0) 推荐(0)
摘要: 模块是包括Python定义和声明的文件。文件名就是模块名加上.py后缀。模块的模块名可以由全局变量__name__得到。 每个模块都有自己私有的符号表,被模块内所有的函数定义作为全局符号表使用。因此,模块的作者可以在模块内部使用全局变量,而无需担心它与某个用户的全局变量意外冲突 1、作为脚本来执行模 阅读全文
posted @ 2020-08-28 14:56 马里奥本奥 阅读(129) 评论(0) 推荐(0)
摘要: 1、列表方法 list.append(x) list.extend(L) list.insert(i, x) list.remove(x) list.pop([i]) list.index(x) list.count(x) list.sort() list.reverse() 1.2、列表推导式 列 阅读全文
posted @ 2020-08-28 14:54 马里奥本奥 阅读(130) 评论(0) 推荐(0)
摘要: 1、默认参数 def power(x, n = 2): s = 1 while n > 0: n = n - 1 s = s * x return s 调用 >>> power(5) 25 >>> power(5, 2) 25 设置默认参数的注意点: 必选参数在前,默认参数在后,否则Python会报 阅读全文
posted @ 2020-08-28 14:52 马里奥本奥 阅读(169) 评论(0) 推荐(0)
摘要: 定义函数 >>> def fib(n): # write Fibonacci series up to n ... """Print a Fibonacci series up to n.""" ... a, b = 0, 1 ... while a < n: ... print(a, end=’ 阅读全文
posted @ 2020-08-28 14:50 马里奥本奥 阅读(229) 评论(0) 推荐(0)
摘要: 1、if语句 >>> x = int(input("Please enter an integer: ")) Please enter an integer: 42 >>> if x < 0: ... x = 0 ... print(’Negative changed to zero’) ... e 阅读全文
posted @ 2020-08-28 14:49 马里奥本奥 阅读(160) 评论(0) 推荐(0)
摘要: Python基本运算 1、复数运算 变量在使用前必须“定义”(赋值),否则会出错 带有后缀 j 或 J 就被视为虚数,带有非零实部的复数写为(real + imag * j),或者可以用complex(real, imag)函数创建。 >>> 1j * 1J (-1+0j) >>> 1j * com 阅读全文
posted @ 2020-08-28 14:47 马里奥本奥 阅读(715) 评论(0) 推荐(0)
摘要: Python3多行输入 1、input().split()用法 host, port, username, passwd, dbname = input("请输入服务器地址,端口号,用户名,密码及数据库名,空格隔开:").split() # 注意input()的返回类型是str print(host 阅读全文
posted @ 2020-08-28 14:38 马里奥本奥 阅读(7031) 评论(0) 推荐(0)
摘要: python3的输出 print('{0},{1}'.format('zhangk', 32)) print('{},{},{}'.format('zhangk','boy',32)) print('{name},{sex},{age}'.format(age=32,sex='male',name 阅读全文
posted @ 2020-08-28 14:33 马里奥本奥 阅读(284) 评论(0) 推荐(0)
摘要: Git实际工作流程 首先通过git clone下载远端master主干代码 对于已经clone的代码,使用git pull命令获取最新 在本地仓库通过git branch命令新建分支,分支命名规则为:feature/xa_工号_dts单号 使用git checkout切换到新分支 在该分支下修改代码 阅读全文
posted @ 2020-08-28 11:34 马里奥本奥 阅读(322) 评论(0) 推荐(0)
摘要: Git鼓励大量使用分支: 查看分支:git branch 创建分支:git branch <name> 切换分支:git checkout <name>或者git switch <name> 创建+切换分支:git checkout -b <name>或者git switch -c <name> 合 阅读全文
posted @ 2020-08-28 11:21 马里奥本奥 阅读(136) 评论(0) 推荐(0)
摘要: 现在,假设我们从零开发,那么最好的方式是先创建远程库,然后,从远程库克隆。 首先,登陆GitHub,创建一个新的仓库,名字叫gitskills; 勾选Initialize this repository with a README,这样GitHub会自动为我们创建一个README.md文件。创建完毕 阅读全文
posted @ 2020-08-28 11:18 马里奥本奥 阅读(165) 评论(0) 推荐(0)
摘要: 现在的情景是,你已经在本地创建了一个Git仓库后,又想在GitHub创建一个Git仓库,并且让这两个仓库进行远程同步,这样,GitHub上的仓库既可以作为备份,又可以让其他人通过该仓库来协作,真是一举多得。 首先,登陆GitHub,然后,在右上角找到“Create a new repo”按钮,创建一 阅读全文
posted @ 2020-08-28 11:17 马里奥本奥 阅读(250) 评论(0) 推荐(0)
摘要: 基本设置 GitHub提供Git仓库托管服务的,自行注册GitHub账号。由于你的本地Git仓库和GitHub仓库之间的传输是通过SSH加密的,所以,需要一点设置: 第1步:创建SSH Key。在用户主目录下,看看有没有.ssh目录,如果有,再看看这个目录下有没有id_rsa和id_rsa.pub这 阅读全文
posted @ 2020-08-28 11:09 马里奥本奥 阅读(168) 评论(0) 推荐(0)
摘要: 删除文件 在Git中,删除也是一个修改操作,我们实战一下,先添加一个新文件test.txt到Git并且提交: $ git add test.txt $ git commit -m "add test.txt" [master da87dd2] add test.txt 1 file changed, 阅读全文
posted @ 2020-08-28 10:57 马里奥本奥 阅读(149) 评论(0) 推荐(0)
摘要: Git checkout -- file git checkout -- file可以丢弃工作区的修改: $ git checkout -- readme.txt 命令git checkout -- readme.txt意思就是,把readme.txt文件在工作区的修改全部撤销,这里有两种情况: 一 阅读全文
posted @ 2020-08-28 10:50 马里奥本奥 阅读(114) 评论(0) 推荐(0)
摘要: 管理修改 Git跟踪并管理修改,而非文件。 做实验验证。第一步,对readme.txt做一个修改,比如加一行内容: $ cat readme.txt Git is a distributed version control system. Git is free software distribut 阅读全文
posted @ 2020-08-28 10:44 马里奥本奥 阅读(153) 评论(0) 推荐(0)
摘要: 工作区:就是在电脑里能看到的,经过git init初始化,包含.git文件的目录 版本库:工作区有一个隐藏目录.git,这个不算工作区,而是Git的版本库。 暂存区:Git的版本库里存了很多东西,其中最重要的就是称为stage(或者叫index)的暂存区,还有Git为我们自动创建的第一个分支mast 阅读全文
posted @ 2020-08-28 10:28 马里奥本奥 阅读(122) 评论(0) 推荐(0)
摘要: 1. 在windows上安装Git 在Windows上使用Git,可以从Git官网直接下载安装程序,然后按默认选项安装即可。 安装完成后,在开始菜单里找到“Git”->“Git Bash”,蹦出一个类似命令行窗口的东西,就说明Git安装成功! 安装完成后,还需要最后一步设置,在命令行输入: $ gi 阅读全文
posted @ 2020-08-28 09:21 马里奥本奥 阅读(326) 评论(0) 推荐(0)