使用场景:多个对象(由同一个类产生)的属性同名且值都一样,这时就需要使用init()方法.

# 多个对象(由同一个类产生)的属性同名且值都一样,这时就需要使用__init__()方法.

# class 定义属性和方法,增加代码的复用性 __init__()方法
"""
双下划线开头,双下划线结尾的方法都具有特殊含义,并且此方法在特定情况下会自动调用.(调用就是使用,执行的意思)Python解释器会自动调用,内部已经写好了. 把定义属性的方法写在__init__()方法里面,当然,也可以自己定义.只是需要自己去写调用方法 称之为魔法方法.也叫运算符重载方法 在创建对象时就会自动调用.
__init__()方法叫初始化,功能: 定义属性 在其他的语言中也有__init__()方法,就是进行属性赋值操作的方法. 自我理解:类似手机或电脑在开机启动的时候进行的加载操作.可以简单理解为是一个程序正式运行前的准备工作. """
class Dog:
def __init__(self, name): # 这里的name称为自定义参数.不要写死了这里加形参进行传参操作.如果不想让属性的初始值写死,可以给init加形参,通过参数的方式传递给属性
self.type = '狗'
self.name = name # 自定义属性的初始值 # 先造对象,再调用init()方法init的实参应该在创建对象的类名后面的小括号中传递
dog1 = Dog('小花') # 在创建的时候就会执行init()方法,同时注意init()方法有一个位置参数(形参),不能调用的时候不能为空,所以这里一定要记得给init()传一个参数'小花'
print(id(dog1.name)) #
print(id(dog1.type)) # 2240461703328 虽然id地址一样,但是仍然不一样
print(dog1.name) # 小花
print(dog1) # <__main__.Dog object at 0x0000025674A58978>
# 都有属性type,值一样,但是 不是同一个属性.只是属性名字一样而已.创建的时候代码会走两遍,每次创建一个对象就会执行一遍
dog2 = Dog('小黑') # 小黑
print(dog2.name) #
print(id(dog2.name)) #
print(id(dog2.type)) # 2240461703328 虽然id地址一样,但是仍然不一样 # 类中写属性,只能在init()方法中写
# 这里记住:虽然打印输出的id值一样(地址值),但实际上dog1.type和dog2.type不一样,是独立的两个.只是在Python解释器中为了运行效率,将同一个type的值进行了缓存

__init__初始化方法的更多相关文章

  1. python面向对象的基础语法(dir内置函数、self参数、初始化方法、内置方法和属性)

    面相对象基础语法 目标 dir 内置函数 定义简单的类(只包含方法) 方法中的 self 参数 初始化方法 内置方法和属性 01. dir 内置函数(知道) 在 Python 中 对象几乎是无所不在的 ...

  2. Python __init__ 特殊方法

    在Python中有很多以双下划线开头且以双下划线结尾的固定方法.他们会在特定的时机被触发执行. __init__ 就是其中之一,它会在实例化之后自动被调用.以完成实例的初始化. >>> ...

  3. tensorflow中的参数初始化方法

    1. 初始化为常量 tf中使用tf.constant_initializer(value)类生成一个初始值为常量value的tensor对象. constant_initializer类的构造函数定义 ...

  4. super(Student,self).__init__()初始化的是什么东西?

    继承不是为了继承里面原来的属性和值么,不初始化的话,会有什么问题? 2015-04-04源自:python进阶 5-17642 浏览2 回答 最佳回答 2015-05-05 1 super(Stude ...

  5. Python是否存在方法方法重载及是否可以不显示声明初始化方法

    一.python中是否存在方法重载 对java有了解的程序员都知道,java中存在构造方法重载和普通方法重载,重载指的是方法名相同,参数列表不同的多个方法.python中是否也支持这两种方法重载,测试 ...

  6. Swift - 重写UIKit框架类的init初始化方法(以UITabBarController为例)

    原来写了篇文章讲UITabBarController的用法,当时是从UIViewController跳转到UITabBarController页面,代码如下: 1 self.presentViewCo ...

  7. js jquery 页面加载初始化方法

    js jquery 页面加载初始化方法 一.js页面加载初始化方法 // 1.在body里面写初始化方法. <body onload='init()'> </body> < ...

  8. caffe中权值初始化方法

    首先说明:在caffe/include/caffe中的 filer.hpp文件中有它的源文件,如果想看,可以看看哦,反正我是不想看,代码细节吧,现在不想知道太多,有个宏观的idea就可以啦,如果想看代 ...

  9. Swift开发第十篇——可变参数函数&初始化方法顺序

    本篇分为两部分: 一.Swift中的可变参数函数 二.初始化方法的顺序 一.Swift中的可变参数函数 可变参数函数指的是可以接受任意多个参数的函数,在 OC 中,拼接字符串的函数就属于可变参数函数 ...

随机推荐

  1. GitHub-Hexo-Blog 集成Gitalk评论插件

    在本文)末尾可查看先查看效果: 1. 新建New OAuth App 在github中,Settings / Develpoer settings OAuth Apps / New OAuth App ...

  2. JAVA基础学习-多态 对象转型 final

    一.多态的产生条件 1:继承  存在继承的类之间 2:方法重装 3:父类继承子类重装的方法 子类的对象 也是属于父类的 二:对象的转型 1:向上转型:当子类转型成父类时 例如:Animal a = n ...

  3. MHA-Atlas-MySQL高可用(下)

    MHA-Atlas-MySQL高可用(下) 链接:https://pan.baidu.com/s/17Av92KQnJ81Gc0EmxSO7gA 提取码:a8mq 复制这段内容后打开百度网盘手机App ...

  4. wordpress 添加 显示磁盘剩余空间百分比的插件

    在 wp-content/plugins 文件夹下 我取的文件名是: folder-sizes-dashboard-widget.php 在仪表盘 可以看到 Folder Sizes 标题的Box & ...

  5. app混合开发 fastlick.js 在ios上 input标签点击 不灵敏 处理

    ios11 上有这个问题 而老版本的ios没有 会出现这个的原因是使用fastclick.js点击后input没有获取焦点,所以只需要在fasyclick的源码的这个位置 可以直接在源码内搜索关键字找 ...

  6. H5新属性 contenteditable

    contenteditable 属性规定元素内容是否可编辑 <div contenteditable style="width: 100px;height:100px"> ...

  7. Android中怎么破解游戏之修改金币数

    我们在玩游戏的时候总是会遇到一些东东需要进行购买的,但是我们可能又舍不得花钱,那么我们该怎么办呢?那就是用游戏外挂吧!我们这里说的是Android中的游戏,在网上搜索一下移动端游戏外挂,可能会找到一款 ...

  8. 建模+线性dp——cf1201D

    这类题目要首先把模型建立起来,挑选一个好的状态能让dp方程简化很多 /* dp[i][0]表示从右到左,最后停在左端 dp[i][1]表示从左到右,最后停在右端 dp[i+1][0]=min(dis( ...

  9. 管理员技术(五): 配置文档的访问权限、 配置附加权限、绑定到LDAP验证服务、配置LDAP家目录漫游

    一.配置文档的访问权限 问题: 本例要求将文件 /etc/fstab 拷贝为 /var/tmp/fstab,并调整文件 /var/tmp/fstab的权限,满足以下要求: 1>  此文件的拥有者 ...

  10. Linux环境下安装PHP的mbstring模块

    cd /home/local/php-5.6.25/ext/mbstring/usr/local/php/bin/phpize./configure --with-php-config=/usr/lo ...