__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__()是自定义的还是默认的 

原文地址:https://www.cnblogs.com/hzcya1995/p/13349160.html