python基础知识点总结菜鸟教程,python知识点汇总百度文库

  python基础知识点总结菜鸟教程,python知识点汇总百度文库

  

python视频教程栏目介绍第三篇Python知识点。

  本文是第三篇,四篇文章奠定Python的基础。

  上面两个基本上搞定了Python中的数据结构,下一个就说说最重要的类。

  00-1010一切都是对象。Python当然支持面向对象编程。类和对象是面向对象编程的两个主要方面。类创建一个新的对象,对象是这个类的实例。

  对象可以使用类的变量,属于对象或类的变量称为域;对象也可以使用属于类的函数,这样的函数叫做类的方法;域和方法可以统称为类的属性。

  有两种类型的域。

  属于实例的东西属于类本身。它们分别被称为实例变量和类变量。

  类是使用关键字Class创建的,该类的字段和方法在缩进的块中列出。

  该类的方法必须有一个额外的第一个参数,但在调用它时不会分配该参数。这个特殊变量指的是对象本身,按照惯例它的名字是self,类似于Java中的这个。

  在课堂上,以下两种特殊方法需要注意:

  __init__ method:创建类的对象时调用此方法;相当于C中的构造函数,就是调用这个类的时候会执行这个__init__方法。

  __del__ method:当类的对象被销毁时调用此方法;相当于c中的析构函数,使用del删除对象时调用__del__方法,最后调用__del__方法。

  Python中所有的类成员(包括数据成员)都是公有的,没有Java的私有类,也就是每个人都有一个调用类。虽然写作变得非常简单,

  然而,每个人都可以随意分配资源的访问权限,这在项目中确实是一件坏事。

  但是,Python类有私有变量和私有方法。这是个例外。如果使用的数据成员以双下划线为前缀,它们就是私有变量。

  不能通过实例化该类来访问它。这是很多人忽略的一点。

  例如:

  类public():

  _ name=受保护类型的变量

  __info=私有类型的变量

  def _f(self):

  Print(这是一个受保护类型的方法)def _ _ f2 (self) 3360

  Print(这是一个私有类型的方法)def get(self):

  回归(自我。_ _信息)

  Pub=Public()# Print可访问的打印(pub。_name)首先。

  出版_ f () # # #结果如下# # #受保护的# # # #类型的变量

  这是一个受保护类型的方法# print下面的私有变量和私有方法print(pub。_ _信息)

  错误:“public”对象没有属性“_ _ info”pub。_ F2()

  错误:pub。_f2()复制代码,但是私有属性和方法可以在同一个类中调用。

  Pub.get () # # # # # 私有类型变量复制代码很多人都不知道。接下来,我将声明一个Person类。

  类人():

  计数=0

  def __init__(自己,姓名,年龄):

  人。计数=1

  self.name=name

  自我。_ _年龄=年龄

  p=人( Runsen ,20)

  Print(p.Count)# 1表示我实例化,这个__init__方法将执行print(p . name)# runsen print(p . _ _ age)

  # attribute error : person instance没有属性“_ _ age”#无法访问私有变量。复制代码

7、面向对象编程

有错误的面向对象编程(OOP)。英文全称:面向对象编程。面向对象编程的主要功能之一是“继承”。继承是指使用现有类的所有功能并扩展它们而无需重写原始类的能力。

  继承,其实这个理解就是我写了一个父类和一个子类。父亲有钱,儿子没钱,于是儿子决定继承父亲,叫他的钱(父亲类的变量和方法)。

  继承一个类,基本上使用以下五种方法。

  00-1010爸爸有钱,儿子没钱,儿子就用爸爸的钱。

  pre class="brush:php;toolbar:false">class Father():

   def __init__(self):

   self.money= 1000

   def action(self):

   print('调用父类的方法')

  class Son(Father):

   pass

   son=Son() # 子类Son 继承父类Father的所有属性和方法son.action() # 调用父类属性输出:调用父类的方法

  son.money # 调用父类属性输出:1000复制代码

8,2 强制调用父类私有属性方法;

爸爸说,你这个儿子,老是用我的钱,我决定藏私房钱。儿子试试super()拿你的私房钱,但是这里需要注意super()强制调用父类私有属性方法,就是重写方法,私有变量是不能用supper继承不了,还不可以访问父类中的私有属性方法的变量,就是儿子是拿不了私房钱的。

  

class Father():

   __money = 1000 #私有变量是继承不了

   def __action(self): # 父类的私有方法

   money = 1000

   print('调用父类的方法')

  class Son(Father):

   def action(self):

   super()._Father__action()

   print(money)

  son=Son()

  son.action()

  调用父类的方法

  name 'money' is not defined复制代码

8.3 重写父类属性方法;

突然间儿子竟然有钱,决定不用爸爸的钱,用自己的钱,决定重写父类属性方法。

  

class Father():

   def __init__(self):

   self.money = 0

   def action(self):

   print('调用父类的方法')

  class Son(Father):

   def __init__(self):

   self.money = 1000

   def action(self):

   print('子类重写父类的方法')

  son=Son() # 子类Son继承父类Father的所有属性和方法son.action() # 子类Son调用自身的action方法而不是父类的action方法son.money # 自己的1000复制代码

8.4 调用父类的__init__方法

如果爸爸把钱放在__init__,儿子有没有可能拿到爸爸的钱,都不是私有变量,就不是私房钱,当然可以拿到

  我们先看看如果不用super,能不能拿到。

  

class Father():

   def __init__(self):

   self.money = 1000

   class Son(Father):

   def __init__(self):

   pass

   son=Son()

  print(son.money)# 报错:'Son' object has no attribute 'money'复制代码

连super不用就像拿钱,太小看你爸爸我了。

  

class Father():

   def __init__(self):

   self.money = 1000

   class Son(Father):

   def __init__(self):

   super().__init__() #也可以用 Father.__init__(self) 这里面的self一定要加上(上面两个相同)

   son=Son()

  print(son.money)

  1000复制代码

8.5 继承父类初始化过程中的参数

有的时候,爸爸需要挣钱和花钱,就是我们初始化过程中的参数,儿子很好奇,决定看看爸爸口袋还要多少钱。

  我们这里先写死了earn_money和spend_money

  

class Father():

   def __init__(self):

   self.earn_money=1000

   self.spend_money= -500

   class Son(Father):

   def __init__(self):

   super().__init__() #也可以用 Father.__init__(self) 这里面的self一定要加上

   def add(self):

   return self.earn_money+self.spend_money

  son=Son()

  print(son.add())500复制代码

儿子发现爸爸钱不够,于是偷偷的拿了点钱过来。

  

class Father():

   def __init__(self,a,b):

   self.earn_money = a

   self.spend_money= b def add(self):

   return self.a + self.b

  #调用父类初始化参数a,b并增加额外参数cclass Son(Father):

   def __init__(self,a,b,c=1000): # c固定值

   Father.__init__(self,a,b)

   self.son_money = c

   def add(self):

   return self.earn_money+self.spend_money + self.son_money

  son=Son(1000,-500) # 所以c可以不用显示表达出来print(son.add()) # 调用子类add函数1500复制代码

以上基本涵盖了Python类的继承,调用父类的属性和方法基础内容,可以自己动手写些案例,加深理解。

  

9、输入/输出

程序与用户的交互需要使用输入/输出,主要包括控制台和文件;对于控制台可以使用input和print。input(xxx)输入xxx,

  然后读取用户的输入并返回。

  

In [1]: input()1Out[1]: '1'复制代码

10、文件输入/输出

可以使用file类打开一个文件,使用file的read、readline和write来恰当的读写文件。对文件读写能力取决于打开文件时使用的模式,

  常用模式

  

  • 读模式("r")
  • 写模式("w")
  • 追加模式("a")
文件操作之后需要调用close方法来关闭文件。如果用with open就不用slose了。

  还有r+,w+,a+

  

  • r:仅仅表示读入
  • r+:既可以读取还可以写入
  • w: 仅仅表示写入
  • w+:既可以读取还可以写入
但r+与w+不同的是,不会把原先存在txt中的东西清空,下面是他们的对比,反正尽量用a+,基本没什么错报出来。

  描述r+w+a+当前文件不存在时文件抛出异常创建文件创建文件打开后原文件内容保留清空保留初始位置00文件尾写入位置标记位置标记位置写入时默认跳至文件尾补充个例子吧:

  

test = '''\

  This is a program about file I/O.

  Author: Runsen

  Date: 2020/3/31

  '''f = open("test.txt", "w")

  f.write(test)

  f.close()

  f = open("test.txt") #默认rwhile True:

   line = f.readline() if len(line) == 0:

   break

   print(line)

  f.close()######This is a program about file I/O.

  Author: Runsen

  Date: 2020/3/31复制代码

11、存储器

存储器,大家应该不知道。python提供一个标准的模块,成为pickle,使用它可以在一个文件中存储任何python对象,之后可以完整的取出来,这被称为持久地存储对象;还有另外一个模块成为cPickle,它的功能和pickle完全一样,只不过它是用c写的,要比pickle速度快(大约快1000倍)。

  

import pickle

  datafile = "data.data"mylist = ["Runsen", "is", "20"]

  f = open("test.txt", "wb+")

  pickle.dump(mylist, f)

  f.close()del mylist

  f = open(datafile,'rb+')

  mylist = pickle.load(f)

  print(mylist)#["Runsen", "is", "20"]复制代码

12、异常

当程序中出现某些异常的状况时,异常就发生了。

  python中可以使用try ... except 处理。

  

try: print (1/0)except ZeropisionError as e:

   print(e)except:

   print( "error or exception occurred.")#integer pision or modulo by zero复制代码

相关免费学习推荐:python视频教程

  

以上就是给小白整理的第三篇Python知识点的详细内容,更多请关注盛行IT软件开发工作室其它相关文章!

  

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: