python菜鸟日记5

1.在python中我们可以导入模块,来调用模块里面的函数,在一个模块中,我们可以定义很多的函数和变量,但有些函数我们并不希望被别人使用,只希望在模块内部使用,那么,我们

可以通过_(下划线)前缀来实现,比如_ABC,_qiuhe,但是python并没有强制限制访问函数或变量,只是一种编程的习惯而已

2.在python中,pip是一个包管理工具,我们通过它来安装第三方软件的,一般来说,第三方库都会在Python官方的pypi.python.org网站注册,我们进入该网址,然后搜索我们要下载的模块名

进行下载

3.下载完毕以后我们就用pip工具进行安装,这里要注意的是,我们下载文件保存在哪个路径下的,如果是python不能访问的路径就会报错,我们通过import sys模块,再sys.path,查看path属性

就知道python能够访问的路径,这个属性返回的是一个列表,里面有很多元素,表示的是python能访问的路径,如果我们下载的文件不再这个列表中,我们可以通过sys.path.append()进行

添加路径,这种添加路径的方法自在运行时有效,运行结束后就失效了

4.如果我们其他常用的第三方库还有MySQL的驱动:mysql-connector-python用于科学计算的NumPy库:numpy,用于生成文本的模板工具Jinja2,Pillow等等

5.面向对象的程序设计,设计思想就是通过抽象出类class,再根据类写出具体化的实例

6.在类中的函数和不同函数不同之处就是第一个参量永远是self

7.在python中以双下划线开头的属性是私有属性,不能在外部进行修改的,只有内部函数可以进行修改,双下划线开头并且双下划线结尾的我们成为特殊属性,特殊属性是可以直接访问的

8.在类里面,我们可以将属性进行私有化,前面加两个下划线,这样,在具体化一个实例后,这个实例就不能以实例名.属性=..,这样来进行修改属性的值,而且也不能以这种形式进行访问

,因为属性被私有化了,如果要访问我们可以在类里面定义函数,get_属性(),set_属性(),通过实例调用这些函数来显示实例的属性,或者对实例的属性进行修改

9.在继承关系中,如果一个实例的数据类型是某个子类,那它的数据类型也可以被看做是父类。但是,反过来就不行

10.类其实也是一种数据类型,和int,str,list类似的,定义函数的时候,如果我们需要指定实参的数据类型,那么我们的形参名就应该是这个数据类型,def a(int,list,类名),这样,传值

的时候,第一个必须是整形,第二个必须是列表,第三个必须是指定的类名。

11.类的多态性,当某个函数里面的参数名是某个类名的时候,如果传入的实参是这个类的子类,那么函数也会把这个类当作他们的父类一样进行处理,这就是类的多态性

12.python是动态语言,参数名是某类名,因为动态性,所以python中有一中鸭子类型,也就是说不管你是不是一只鸭子,只要你走路像鸭子,那么python就认为你是鸭子,所以,传入实参的类中

只要有该函数体中涉及到的函数,就能够被调用,不需要是参数类的子类。

13.power(x,y,z)表示x的y次方再对z取余,其中z是可选的,而x,y是必选的

14.判断一个对象是什么类型我们可以用type()函数,判断对象是否是某种类型可以用isinstance(,),利用函数dir(对象名)可以得到这个对象的所有属性(变量)和方法(函数),

getattr(对象名,‘属性名‘),从这个函数中获取这个属性所对应的值,hasattr(对象名,‘属性名‘),判断这个对象属否存在这个属性,setattr(对象名,‘属性名‘,值),将

该对象里面的这个属性赋值

15.在类中,如果定义了属于类的属性,那么在创建实例的时候,这个实例也会拥有这个类里面的所有属性,

16.__slots__特殊变量,用在类里面,用来限定以该类创建的实例可以添加哪些属性,如果添加了不在这里面的属性就会报错,__slots__=(‘属性名‘,‘属性名‘,...),如果用子类创建的实例

子类中如果没有这个特殊属性,那么子类就不继承父类的这个特殊属性,如果有,那么该实例的限制就是子类加父类的限制

17.对于绑定到类的函数和类中定义的函数的区别就是,绑定的函数只绑定到类中,对于多个实例同时调用这个函数的话,返回的是最有一个调用结果,也就是说会覆盖,对于内部定义的函数

就相当于,绑定到每个实例,那么多次调用的时候,各自返回各自调用的结果。

18.定义在类中的方法一般都是动态方法(如过不强制静态的话),这种动态方法,类是不能直接调用的,必须绑定到一个实例上,通过实例才能调用,定义在类中的属性也是一样的,是静态

的,但是实例是可以访问的,但该属性只属于类,不属于实例,如果实例添加了一个和类属性一样的属性,那么实例就可以更改属性值。

19.多重继承指的是一个子类可以继承多个父类,那么这个子类就可以有多个父类的属性和方法

20.a.__len__就相当于len(a)

21.通过在类中写入__iter__ (),__next__()函数来将类变成一个可迭代对象,__iter__()函数将类变成可迭代对象,而__next__()将一个一个取出值,其实for .. in ...语句里面的循环

变量取后面的可迭代性的值就是通过next函数一个一个取出的,

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-11-06 07:47:20

python菜鸟日记5的相关文章

python菜鸟日记2

1.对于类之间的的子类关系是可以传递的:比如C1是C2的子类,C2是C3的子类,那么C1也是C3的子类,任何类都可以看成是自身的子类,class类里面也可以嵌套一个class类 2.在类中,要想在函数中引用类的属性(全局变量),就必须使用完整名称(类名.变量名),而对于在类体中的语句,想引用类的属性,就必须使用属性的简单名称 例如: class c(): x=55 y=x+66                   --必须使用简单名称 def b(): f=c.x**3            

python菜鸟日记7

1. 如果直接在操作系统中进行命令行操作,那么一般使用的是操作系统所提供的接口函数,而如果想在python中也能够调用操作系统的接口函数来对文件,目录进行操作的话,可以使用os和os.path模块,这些模块可以直接调用操作系统提供的接口函数 2. >>>os.name ,name属性会反映出操作系统的一些信息,如果是posix,说明系统是Linux.Unix或Mac OS X,如果是nt,就是Windows系统,要获取详细的系统信息,可以调用uname()函数,注意uname()函数在W

python菜鸟日记4

1.在python中,0,'',{},(),[],空值,空列表,等等,都表示假值,反之都是真值在逻辑运算and,or中,返回的不是true或者false,返回的是逻辑运算符两边的其中一个值,而对于算数运算符, ==,!=,>,<,这些才返回的是true或者false 2.and,从左到右运算,当两边,都是真值时,返回最后一个真值,当两边都是假值时,就返回第一个假值,当同时存在真假值时,则返回第一个假值,其实,记法可根据逻辑运算结果记 例如: >>> 'a' and 'b' '

python菜鸟日记6

在函数调用的过程中,假设函数里面有循环嵌套的函数,那么在里面的函数遇到异常的时候,就终止函数,后面的语句将不会执行,而try后面的语句也将会中止执行,转而except. 异常其实也是一个类,是一个对象 此外,如果没有错误发生,可以在except语句块后面加一个else,当有错误发生时,会自动执行else语句 Python所有的错误都是从BaseException类派生的,常见的错误类型和继承关系看这里 使用try-except捕获错误还有一个巨大的好处,就是可以跨越多层调用,也就是说,不需要在每

python菜鸟日记8

1. python中的多进程编程概念:由于Python是跨平台的,自然也应该提供一个跨平台的多进程支持.multiprocessing模块就是跨平台版本的多进程模块.multiprocessing模块提供了一个Process类来代表一个进程对象. 2. python中的多线程编程具体做法:当我们引入该multiprocessing模块后,对需要进行调用的函数创建进程:b= Process(target=函数名, args=(实参,)),因为process是一个类,所以b就是一个target函数的

Python菜鸟晋级03----repr() 与str() 函数的区别

两者均是将数值转换成字符串的形式,但是有细微的区别 str()会创建一个适合人阅读的字符串. repr()会创建适合解释器阅读的字符串. >>> hello = 'hello, world\n' >>> hellos = repr(hello) >>> hellos "'hello, world\\n'" #出现反斜杠进行转意 >>> hellos=str(hello) >>> hellos 'h

Python菜鸟晋级06----特殊属性整理

Python一切皆对象(object),每个对象都可能有多个属性(attribute). #现在我们来总结下所有的系统定义属性和方法, 先来看下保留属性: >>> Class1.__doc__ # 类型帮助信息 'Class1 Doc.' >>> Class1.__name__ # 类型名称 'Class1' >>> Class1.__module__ # 类型所在模块 '__main__' >>> Class1.__bases__

Python菜鸟之路:Django 路由补充FBV和CBV

在Python菜鸟之路:Django 路由.模板.Model(ORM)一节中,已经介绍了几种路由的写法及对应关系,那种写法可以称之为FBV: function base view . 今天补充另外一种路由关系的写法:CBV,即:class base view , 也可以看做为面向资源编程的另外一种叫法,类似tornado中的路由写法. 1. 建立路由关系urls.py from app01 import views urlpatterns = [ url(r'^home/', views.Hom

Python菜鸟晋级08----str.format()方法

用法 str.format()方法会返回一个新的字符串,在新的字符串中,原字符串的替换字段(大括号中和数字是预留的替换字段)被format方法中的参数代替. 替换字段被format方法中参数代替有一下集中形式------------------------- 按照位置 '{0},{1}'.format('kzc',18) #按照替换字段中的数字带入format方法中的参数 'kzc,18' '{},{}'.format('kzc',18) #替换字段中没有数字就按照顺序带入format方法中的参