首页 > 电脑教程 > 编程开发 > 循序渐进理解python的__init__()方法

循序渐进理解python的__init__()方法

小编:动力软件园 时间:2018-07-02 13:35:13

__init__()方法也叫实例初始化方法,在初始化对象的时候,其实就是执行的是__init__()方法。以下从三个代码的优化来理解__init__()方法的使用。小白自我学习,大神飘过。


重点:__init__()方法为什么又叫实例初始化方法。因为实例化对象的时候就是执行的__init__()

.=

#!/usr/bin/env python
# -*- coding: utf-8 -*-
__author__ = 'www.pw88.com'
#代码一
class Animal(object):
    def eat(self):
        print("吃饭")
dog = Animal() #创建对象又叫实例化对象
dog.colour =  'red' # 添加属性
dog.name = '旺财'
print(dog.name)

cat =Animal()
cat.name = '小花花'
cat.colour ='我是白猫'
print(cat.name)


#每次实例化一个对象都需要手工指定属性。


#代码二:使用__init__()方法
class Animal(object):
    def __init__(self):
        self.name = '小花'
        self.colour = '黑色'
    def eat(self):
        print("吃饭")
dog = Animal() #创建对象又叫实例化对象
print(dog.name)
print(dog.colour)
print('--'*20) #打印20个*
#再实例化一个对象
cat = Animal()
print(cat.name)


执行代码结果,猫和狗都是叫小花了。肯定不正确了。有没有办法在初始化__init__(self)的时候就赋值呢?


小花
黑色
----------------------------------------
小花


#代码三:初始化__init__()的时候赋值,像不像函数指定参数 形参,实例化的时候是实参。

class Animal(object):
    def __init__(self,name,colour):
        self.name = name
        self.colour = colour
        print('__init_ 执行了')
    def eat(self):
        print("吃饭")
    def __str__(self): #只能return返回一个字符串对象。
        return ('动物类')
dog = Animal('旺财','黄色') #创建对象又叫实例化对象
print(dog.name)
print(dog)
cat =Animal('小花','花色')
print(cat.name)
print(cat)


相关阅读
排行榜
易学车老版本

易学车老版本

实用工具 下载
天行健安卓版 v2.35770

天行健安卓版 v2.35770

手游软件 下载
三星PC套件 samsung kies 官方正式版 3.2.15041.2

三星PC套件 samsung kies 官方正式版 3.2.15041.2

手机工具 下载