zoukankan      html  css  js  c++  java
  • Python基础教程学习(三)

    如何定义类
    class ClassName(base_class[es]):
    "optional documentation string"
    static_member_declarations
    method_declarations
    使用 class 关键字定义类。 可以提供一个可选的父类或者说基类; 如果没有合适的基类,
    那就使用 object 作为基类。class 行之后是可选的文档字符串, 静态成员定义, 及方法定
    义。
    class FooClass(object):
    """my very first class: FooClass"""
    version = 0.1 # class (data) attribute
    def __init__(self, nm='John Doe'):
    """constructor"""
    self.name = nm # class instance (data) attribute
    print 'Created a class instance for', nm
    def showname(self):
    """display instance attribute and class name"""
    print 'Your name is', self.name
    print 'My name is', self.__class__.__name__
    def showver(self):
    """display class(static) attribute"""
    print self.version # references FooClass.version
    def addMe2Me(self, x): # does not use 'self'
    """apply + operation to argument"""
    return x + x
    Edit By Vheavens
    Edit By Vheavens
    在上面这个类中, 我们定义了一个静态变量 version, 它将被所有实例及四个方法共享,
    __init__(), showname(), showver(), 及熟悉的 addMe2Me(). 这些 show*()方法并没有做什
    么有用的事情, 仅仅输出对应的信息。 __init__() 方法有一个特殊名字, 所有名字开始和
    结束都有两个下划线的方法都是特殊方法。
    当一个类实例被创建时, __init__() 方法会自动执行, 在类实例创建完毕后执行, 类
    似构建函数。__init__() 可以被当成构建函数, 不过不象其它语言中的构建函数, 它并不创
    建实例--它仅仅是你的对象创建后执行的第一个方法。它的目的是执行一些该对象的必要的初
    始化工作。通过创建自己的 __init__() 方法, 你可以覆盖默认的 __init__()方法(默认的
    方法什么也不做),从而能够修饰刚刚创建的对象。在这个例子里, 我们初始化了一个名为 name
    的类实例属性(或者说成员)。这个变量仅在类实例中存在, 它并不是实际类本身的一部分。
    __init__()需要一个默认的参数, 前一节中曾经介绍过。毫无疑问,你也注意到每个方法都有
    的一个参数, self.
    什么是 self ? 它是类实例自身的引用。其他语言通常使用一个名为 this 的标识符。
    如何创建类实例
    >>> foo1 = FooClass()
    Created a class instance for John Doe
    屏幕上显示的字符串正是自动调用 __init__() 方法的结果。当一个实例被创建,
    __init__()就会被自动调用。不管这个__int__()是自定义的还是默认的。
    创建一个类实例就像调用一个函数, 它们确实拥有一样的语法。它们都是可调用对象。类
    实例使用同样的函数运算符调用一个函数或方法。既然我们成功创建了第一个类实例, 那现在
    来进行一些方法调用:
    >>> foo1.showname() Your name is John Doe
    My name is __main__.FooClass
    >>>
    >>> foo1.showver()
    0.1
    >>> print foo1.addMe2Me(5)
    10
    >>> print foo1.addMe2Me('xyz')
    Edit By Vheavens
    Edit By Vheavens
    xyzxyz
    每个方法的调用都返回我们期望的结果。比较有趣的数据是类名字。在showname()方法中,
    我们显示 self.__class__.__name__ 变量的值。对一个实例来说, 这个变量表示实例化它的
    类的名字。(self.__class__引用实际的类)。在我们的例子里, 创建类实例时我们并未传递
    名字参数, 因此默认参数 'John Doe' 就被自动使用。在我们下一个例子里, 我们将指定一
    个参数。
    >>> foo2 = FooClass('Jane Smith') Created a class instance for Jane Smith
    >>> foo2.showname()
    Your name is Jane Smith
    My name is FooClass
    第十三章将详细介绍Python 类和类实例。
    2.19 模块
    模块是一种组织形式, 它将彼此有关系的Python 代码组织到一个个独立文件当中。
    模块可以包含可执行代码, 函数和类或者这些东西的组合。
    当你创建了一个 Python 源文件,模块的名字就是不带 .py 后缀的文件名。一个模块创
    建之后, 你可以从另一个模块中使用 import 语句导入这个模块来使用。
    如何导入模块
    import module_name
    如何访问一个模块函数或访问一个模块变量
    一旦导入完成, 一个模块的属性(函数和变量)可以通过熟悉的 .句点属性标识法访问。
    module.function()
    module.variable
    现在我们再次提供 Hello World! 例子, 不过这次使用 sys 模块中的输出函数。
    >>> import sys
    Edit By Vheavens
    Edit By Vheavens
    >>> sys.stdout.write('Hello World! ')
    Hello World!
    >>> sys.platform
    'win32'
    >>> sys.version
    '2.4.2 (#67, Sep 28 2005, 10:51:12) [MSC v.1310 32 bit
    (Intel)]'
    这些代码的输出与我们使用 print 语句完全相同。 唯一的区别在于这次调用了标准输出
    的 write()方法,而且这次需要显式的在字符串中提供换行字符, 不同于print 语句, write()
    不会自动在字符串后面添加换行符号。
    关于模块和导入, 你可以在第12 章中得到更多有用的信息。在那里会详细介绍本章上面

    所有提到的主题,希望我们提供的快速入门能达到你迅速使用Python 开始工作的目标。


    Python 语句中有一些基本规则和特殊字符:

  • 相关阅读:
    翻译MDN里js的一些方法属性
    ajax相关
    我的面试错题
    写代码通用思路
    工厂模式
    cookie & session
    X-UA-Compatible设置IE浏览器兼容模式
    [转]IE6/IE7/IE8/IE9中tbody的innerHTML不能赋值的完美解决方案
    EasyUseCase 一款脑图转化 Excel 测试用例工具 (1.2 版本升级)
    XMind2TestCase:一个高效测试用例设计的解决方案!
  • 原文地址:https://www.cnblogs.com/javawebsoa/p/3241367.html
Copyright © 2011-2022 走看看