Python - 面向对象编程 - __init__() 构造方法
什么是构造方法
- 在创建类时, 可手动添加一个 __init__() 方法,称为构造方法,这是一个实例方法
- 构造方法用于创建实例对象时使用,每当创建一个类的实例对象时,Python 解释器都会自动调用它
- 一般用来初始化对象的某些属性
构造方法语法格式
class 类:
def __init__(self, 参数):
self.属性 = 参数
... 对象 = 类(参数)
- init 的前缀和后缀是两个下划线 _
- 方法可以包含多个参数,但必须要包含一个 self 参数,且必须为第一个参数,所以至少要包含一个 self 参数
- 第一个参数 self 指向新创建的对象
类的默认构造方法
- __init__() 构造方法并不是必写
- 假设不写,Python 也会自动添加一个仅包含 self 参数的 __init__() 构造方法,这又称为类的默认构造方法
不带参数的构造方法栗子
# 不带参数
class PoloBlog:
def __init__(self):
print("自动调用构造方法")
# 定义了一个实例属性
self.name = "小菠萝" blog = PoloBlog()
print(blog.name) # 输出结果
自动调用构造方法
小菠萝
显然,在创建 blog 这个对象时,隐式调用了手动创建的 __init__() 构造方法
带参数的构造方法栗子
# 带参数
class PoloBlog:
def __init__(self, name, age):
print("自动调用构造方法")
# 初始化实例属性
self.name = name
self.age = age # 下面定义了一个 say 实例方法
def say(self):
print(self.name, self.age) blog = PoloBlog("姓名", "年龄")
blog.say()
Python - 面向对象编程 - __init__() 构造方法的更多相关文章
- python 面向对象编程(一)
一.如何定义一个类 在进行python面向对象编程之前,先来了解几个术语:类,类对象,实例对象,属性,函数和方法. 类是对现实世界中一些事物的封装,定义一个类可以采用下面的方式来定义: class c ...
- python面向对象编程进阶
python面向对象编程进阶 一.isinstance(obj,cls)和issubclass(sub,super) isinstance(obj,cls)检查是否obj是否是类 cls 的对象 1 ...
- Python 面向对象编程基础
Python 面向对象编程基础 虽然Pthon是解释性语言,但是Pthon可以进行面向对象开发,小到 脚本程序,大到3D游戏,Python都可以做到. 一类: 语法: class 类名: 类属性,方法 ...
- 图解python | 面向对象编程
作者:韩信子@ShowMeAI 教程地址:http://www.showmeai.tech/tutorials/56 本文地址:http://www.showmeai.tech/article-det ...
- python 面向对象编程学习
1. 问题:将所有代码放入一个py文件:无法维护 方案:如果将代码才分放到多个py文件,好处: 1. 同一个名字的变量互相不影响 2.易于维护 3.引用模块: import module 2.包:解决 ...
- Python面向对象编程指南
Python面向对象编程指南(高清版)PDF 百度网盘 链接:https://pan.baidu.com/s/1SbD4gum4yGcUruH9icTPCQ 提取码:fzk5 复制这段内容后打开百度网 ...
- Python面向对象编程(下)
本文主要通过几个实例介绍Python面向对象编程中的封装.继承.多态三大特性. 封装性 我们还是继续来看下上文中的例子,使用Student类创建一个对象,并修改对象的属性.代码如下: #-*- cod ...
- Python 面向对象编程——访问限制
<无访问限制的对象> 在Class内部,可以有属性和方法,而外部代码可以通过直接调用实例变量的方法来操作数据,这样,就隐藏了内部的复杂逻辑.但是,从前面Student类的定义来看(见:Py ...
- Python 面向对象编程 继承 和多态
Python 面向对象编程 继承 和多态 一:多继承性 对于java我们熟悉的是一个类只能继承一个父类:但是对于C++ 一个子类可以有多个父亲,同样对于 Python一个类也可以有多个父亲 格式: c ...
随机推荐
- XSS challenges靶机
第一关 <script>alert(123)</script> "><svg onload=alert(123)> 第二关 <script&g ...
- C语言复习(二)
引言: 不会将每一个部分都详述,只关注于一些自己认为重要的或常错的,若有不足,还望指出 switch()细节:括号内必须是整型或枚举类型:遇到break才会跳出:case包含的必须是常量 contin ...
- html页面自动跳转
<script type="javascrpit"> var url='';//需要跳转的页面 var search = window.location.search; ...
- SpringBoot系列——动态定时任务
前言 定时器是我们项目中经常会用到的,SpringBoot使用@Scheduled注解可以快速启用一个简单的定时器(详情请看我们之前的博客<SpringBoot系列--定时器>),然而这种 ...
- Java流程控制01——用户交互Scanner
用户交互Scanner sacnner对象 之前的语法并没有实现程序与人的交互.java.util.Scanner是Java5的新特征,我们可以通过Scanner类来获取用户的输入. 基本语法: S ...
- 做了两年多的安卓,突然想转Java后端,感觉Android职业前景不太好,转还是不转?
近几年相信很多Android开发者都有过这种想法,最终还是有些Android 开发选择了转行,但是还有些开发者选择了坚持. 因为现在Android开发确实竞争很大,很多公司抛出几个岗位,每天能收到成百 ...
- 天梯赛 L2-008 最长对称子串
题目是PTA的天梯赛练习集中的L2-008 https://pintia.cn/problem-sets/994805046380707840/problems/994805067704549376 ...
- Lingoes安装词典和语音库
安装词典: 选项->词典,出现"词典管理"窗体,点"安装",从磁盘上选择要安装的词典文件(扩展名为ld2的文件),勾选"添加到索引组" ...
- windows的自动登录和隐藏用户
Launch Regedit. #r -> regedit 1. Navigate to: HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\Cu ...
- STP生成树的一些笔记
一.STP概述 1.1.STP简介 交换网络环路主要由广播风暴.多帧复制和MAC地址表紊乱造成. 广播风暴:一个数据帧或包被传输到本地网段 (由广播域定义)上的每个节点就是广播:由于网络拓扑的设计和连 ...