zoukankan      html  css  js  c++  java
  • __init__()方法

    类是面向对象编程的核心,它扮演相关数据及逻辑的容器角色 
    
    使用class关键字定义类可以提供一个可选的父类或者说基类,如果没有合适的基类
    
    那就使用object作为基类。class行之后是可选的文档字符串
    
    class FooClass(object):
        version = 0.1  #class (data)属性
        def __init__(self,nm='John Doe'):
          """constructor"""
          self.name = nm #class 实例属性
          print 'Created a class instace for',nm
        def showname(self):
            """display class(static) attribute"""
            print 'Your name is',self.name
            print 'My name is',self.__class__.__name__
        def shower(self):
            """display class(static) attribute"""
            print self.version  # references FooClass.version
        def addMe2Me(self, x): # does not use 'self'
            return x + x
    		
    		
    在上面这个类中,我们定义了一个静态变量version,它将被所有实例及四个方法共享,
    
    __init__()方法有一个特殊名字,所有名字开始和结束都有两个下划线的方法都是特殊方法
    
    
    当一个类实例被创建时,__init__()方法会自动执行,在类实例创建完毕后执行,类似构建函数
    
    
    __init__()可以被当成构建函数,不过不像其他语言中的构建函数
    
    它并不创建实例---它仅仅是你的对象创建后执行的第一个方法 
    
    如何创建类实例
    
    # -*- coding:utf-8 -*-
    # !/usr/bin/python
    class FooClass(object):
        version = 0.1  #class (data)属性
        def __init__(self,nm='John Doe'):
          """constructor"""
          self.name = nm #class 实例属性
          print 'Created a class instace for',nm
        def showname(self):
            """display class(static) attribute"""
            print 'Your name is',self.name
            print 'My name is',self.__class__.__name__
        def shower(self):
            """display class(static) attribute"""
            print self.version  # references FooClass.version
        def addMe2Me(self, x): # does not use 'self'
            return x + x
    foo1 = FooClass()
    print foo1
    print type(foo1)
    
    
    C:Python27python.exe C:/Users/TLCB/PycharmProjects/untitled/core/a1.py
    Created a class instace for John Doe
    <__main__.FooClass object at 0x02230430>
    <class '__main__.FooClass'>
    
    屏幕上显示的字符串正式自动调用__init__()方法的结果,当一个实例被创建 __init__()会被自动调用
    
    不管这个__init__()是自定义的还是默认的 

  • 相关阅读:
    perl dbi 控制事务
    READ-COMMITTED 不能进行可重复读和防止幻读
    REPEATABLE-READ 预读
    如何规划农商行商业智能系统中的决策分析系统?
    如何规划农商行商业智能系统中的决策分析系统?
    【MySQL】gap lock 浅析
    REPEATABLE-READ和READ-COMMITTED幻读
    ORA-01555: snapshot too old
    CXF动态客户端调用webservice实例
    mysql 区间锁
  • 原文地址:https://www.cnblogs.com/hzcya1995/p/13349160.html
Copyright © 2011-2022 走看看