zoukankan      html  css  js  c++  java
  • 第二次作业

    一.pyshon的面向对象

    *类(Class): 用来描述具有相同的属性和方法的对象的集合。它定义了该集合中每个对象所共有的属性和方法。对象是类的实例。
    *类变量:类变量在整个实例化的对象中是公用的。类变量定义在类中且在函数体之外。类变量通常不作为实例变量使用。
    *数据成员:类变量或者实例变量用于处理类及其实例对象的相关的数据。
    *方法重写:如果从父类继承的方法不能满足子类的需求,可以对其进行改写,这个过程叫方法的覆盖(override),也称为方法的重写。
    *实例变量:定义在方法中的变量,只作用于当前实例的类。
    *对象:通过类定义的数据结构实例。对象包括两个数据成员(类变量和实例变量)和方法。
    *实例化:创建一个类的实例,类的具体对象。
    *继承:即一个派生类(derived class)继承基类(base class)的字段和方法。继承也允许把一个派生类的对象作为一个基类对象对待。

    1.创建类
    *使用class语句来创建一个新类,class之后为类的名称并以冒号结尾

    class ClassName:
       '类的帮助信息'   #类文档字符串
       class_suite  #类体
    

    2.创建实例对象
    *实例化类其他编程语言中一般用关键字 new,但是在 Python 中并没有这个关键字,类的实例化类似函数调用方式。
    使用类的名称 Employee 来实例化,并通过 init 方法接受参数。

    "创建 Employee 类的第一个对象"
    emp1 = Employee("Zara", 2000)
    "创建 Employee 类的第二个对象"
    emp2 = Employee("Manni", 5000)
    

    3.访问属性

    *您可以使用点(.)来访问对象的属性。使用如下类的名称访问类变量:
    emp1.displayEmployee()
    emp2.displayEmployee()
    print "Total Employee %d" % Employee.empCount
    

    4.类的继承
    *面向对象的编程带来的主要好处之一是代码的重用,实现这种重用的方法之一是通过继承机制。继承完全可以理解成类之间的类型和子类型关系。

    1:在继承中基类的构造(init()方法)不会被自动调用,它需要在其派生类的构造中亲自专门调用。
    2:在调用基类的方法时,需要加上基类的类名前缀,且需要带上self参数变量。区别于在类中调用普通函数时并不需要带上self参数
    3:Python总是首先查找对应类型的方法,如果它不能在派生类中找到对应的方法,它才开始到基类中逐个查找。(先在本类中查找调用的方法,找不到才去基类中找)。
    如果在继承元组中列了一个以上的类,那么它就被称作"多重继承" 。

    语法:
    *派生类的声明,与他们的父类类似,继承的基类列表跟在类名之后

    class SubClassName (ParentClass1[, ParentClass2, ...]):
       'Optional class documentation string'
       class_suite
    

    5.方法重写
    *如果你的父类方法的功能不能满足你的需求,你可以在子类重写你父类的方法:

    #!/usr/bin/python
    # -*- coding: UTF-8 -*-
     
    class Parent:        # 定义父类
       def myMethod(self):
          print '调用父类方法'
     
    class Child(Parent): # 定义子类
       def myMethod(self):
          print '调用子类方法'
     
    c = Child()          # 子类实例
    c.myMethod()         # 子类调用重写方法
    

    输出结果为:调用子类方法

    二.异常处理

    1.什么是异常?
    *异常即是一个事件,该事件会在程序执行过程中发生,影响了程序的正常执行。
    *一般情况下,在Python无法正常处理程序时就会发生一个异常。
    *异常是Python对象,表示一个错误。
    *当Python脚本发生异常时我们需要捕获处理它,否则程序会终止执行。

    2.异常处理
    *捕捉异常可以使用try/except语句。
    *try/except语句用来检测try语句块中的错误,从而让except语句捕获异常信息并处理。
    *如果你不想在异常发生时结束你的程序,只需在try里捕获它。

    一个作比较例子,它打开一个文件,在该文件中的内容写入内容,且并未发生异常:

    try:
        fh = open("testfile", "w")
        fh.write("这是一个测试文件,用于测试异常!!")
    except IOError:
        print "Error: 没有找到文件或读取文件失败"
    else:
        print "内容写入文件成功"
        fh.close()
    

    程序输出结果:
    $ python test.py
    内容写入文件成功
    $ cat testfile
    这是一个测试文件,用于测试异常!!

    try:
        fh = open("testfile", "w")
        fh.write("这是一个测试文件,用于测试异常!!")
    except IOError:
        print "Error: 没有找到文件或读取文件失败"
    else:
        print "内容写入文件成功"
        fh.close()
    

    程序输出结果:
    $ python test.py
    Error: 没有找到文件或读取文件失败

    第三方模块

    1.Python 模块
    *Python 模块(Module),是一个 Python 文件,以 .py 结尾,包含了 Python 对象定义和Python语句。
    *模块让你能够有逻辑地组织你的 Python 代码段。
    *把相关的代码分配到一个模块里能让你的代码更好用,更易懂。
    *模块能定义函数,类和变量,模块里也能包含可执行的代码。

    例子
    support.py 模块:

    def print_func( par ):
       print "Hello : ", par
       return
    

    2.import 语句
    *模块的引入
    *模块定义好后,我们可以使用 import 语句来引入模块

    import module1[, module2[,... moduleN]
    

    *当解释器遇到 import 语句,如果模块在当前的搜索路径就会被导入。
    *搜索路径是一个解释器会先进行搜索的所有目录的列表。如想要导入模块 support.py,需要把命令放在脚本的顶端:

    test.py 文件代码:
     
    # 导入模块
    import support
     
    # 现在可以调用模块里包含的函数了
    support.print_func("Runoob")
    

    输出结果:
    Hello : Runoob

    *一个模块只会被导入一次,不管你执行了多少次import。这样可以防止导入模块被一遍又一遍地执行。

    3.From…import 语句
    Python 的 from 语句让你从模块中导入一个指定的部分到当前命名空间中。

    from modname import name1[, name2[, ... nameN]]
    

    3,globals() 和 locals() 函数
    *根据调用地方的不同,globals() 和 locals() 函数可被用来返回全局和局部命名空间里的名字。
    *如果在函数内部调用 locals(),返回的是所有能在该函数里访问的命名。
    *如果在函数内部调用 globals(),返回的是所有在该函数里能访问的全局名字。
    *两个函数的返回类型都是字典。所以名字们能用 keys() 函数摘取。

  • 相关阅读:
    Java实现One-way traffic(单向交通)
    Java实现One-way traffic(单向交通)
    Java实现One-way traffic(单向交通)
    Java实现One-way traffic(单向交通)
    C#调用Delphi Dll返回字符串的示例(使用Move才能拷贝字符串)
    Delphi实现菜单项上出现提示
    WebBrowser中获得脚本中的变量值
    比较两个文件是否相同(比较两个流是否相等)
    WebBrowser执行脚本和调用外部方法
    c#之函数创建和闭包
  • 原文地址:https://www.cnblogs.com/YUESEtaimei/p/7735842.html
Copyright © 2011-2022 走看看