python面向对象(二)
初始化方法
- 当使用
类名()创建对象时,会 自动 执行以下操作:- 为对象在内存中 分配空间 —— 创建对象
- 为对象的属性 设置初始值 —— 初始化方法(
init)
- 这个 初始化方法 就是
__init__方法,__init__是对象的内置方法 __init__方法是专门用来定义一个类具右那些属性的方法
class Cat():
"""猫类""" def __init__(self):
print("初始化方法") cat = Cat()
# 运行结果
初始化方法 # 代码中并未覅用__init__方法,但是它会自己调用
在初始化方法内部定义属性
- 在
__init__方法内部使用self.属性名 = 属性的初始值就可以 定义属性 - 定义属性之后,再使用
Cat类创建的对象,都会拥有该属性
class Cat():
"""猫类""" def __init__(self):
# print("初始化方法") self.name = "黑猫" def eat(self):
print("%s 吃鱼" % self.name) cat = Cat()
cat.eat()
# 运行结果
黑猫 吃鱼 # 使用Cat()类创建猫对象时,猫对象拥有名字---》黑猫
初始化的同时设置初始值
- 如果在创建对象的同时,就设置对象的属性,可以对
__init__方法进行 改造- 把希望设置的属性值,定义成
__init__方法的参数 - 在方法内部使用
self.属性 = 形参接收外部传递的参数 - 在创建对象时,使用
类名(属性1, 属性2...)调用
- 把希望设置的属性值,定义成
class Cat():
"""猫类""" def __init__(self, name):
# print("初始化方法") self.name = name def eat(self):
print("%s 吃鱼" % self.name) cat = Cat("黑猫")
cat.eat() cat1 = Cat("白猫")
cat1.eat()
# 运行结果
黑猫 吃鱼
白猫 吃鱼
__del__ 方法
在
Python中- 当使用
类名()创建对象时,为对象 分配完空间后,自动 调用__init__方法 - 当一个 对象被从内存中销毁 前,会 自动 调用
__del__方法(比如:在对象销毁前在做一些事情)
- 当使用
class Cat():
"""猫类""" def __init__(self, name):
# print("初始化方法") self.name = name def eat(self):
print("%s 吃鱼" % self.name) def __del__(self):
print("%s 吃完了" % self.name) cat = Cat("黑猫")
cat.eat() cat1 = Cat("白猫")
cat1.eat()
# 运行结果
黑猫 吃鱼
白猫 吃鱼
黑猫 吃完了
白猫 吃完了
__str__ 方法
- 在
Python中,使用print输出 对象变量,默认情况下,会输出这个变量 引用的对象 是 由哪一个类创建的对象,以及 在内存中的地址(十六进制表示) - 如果希望使用
print输出 对象变量 时,能够打印 自定义的内容,就可以利用__str__这个内置方法了
class Cat():
"""猫类""" def __init__(self, name):
# print("初始化方法") self.name = name def eat(self):
print("%s 吃鱼" % self.name) def __del__(self):
print("%s 吃完了" % self.name) def __str__(self):
return "我是 %s" % self.name cat = Cat("黑猫")
cat.eat()
print(cat)
# 运行结果
黑猫 吃鱼
我是 黑猫
黑猫 吃完了
python面向对象(二)的更多相关文章
- python面向对象(二)——类成员
Python面向对象 类成员 1.字段 普通字段 属于对象 静态字段 属于类 2.方法 普通方法 触发者是对象 括号里至少一个参数 se ...
- python面向对象二
1.1类的静态属性,类方法,类的静态方法 1.1.1静态属性(@property) 在类中: python内置的@property装饰器就是负责把一个方法(函数)变成属性来调用. class Stud ...
- python 面向对象二 类和实例
一.类和实例 面向对象最重要的概念就是类(Class)和实例(Instance),必须牢记类是抽象的模板,比如Student类,而实例是根据类创建出来的一个个具体的“对象”,每个对象都拥有相同的方法, ...
- Python 面向对象(二) 特殊方法
一些Python特殊方法的汇总 __bases__ 类的基类,返回元祖__base__ 类的基类,也叫父类__call__ '类名()',类名加括号调用时执行的语句__class__ 对象或类 ...
- python面向对象(二)
属性查找 类有两种属性:数据属性和函数属性 1. 类的数据属性是所有对象共享的 2. 类的函数属性是绑定给对象用的 class BeijingStudent: school='Beijing' ...
- python 面向对象(二)--访问限制
在Class内部,可以有属性和方法,而外部代码可以通过直接调用实例变量的方法来操作数据,这样,就隐藏了内部的复杂逻辑. 但是,从前面Student类的定义来看,外部代码还是可以自由地修改一个实例的na ...
- python 面向对象(二)成员
##################################总结########################### 类的成员: 变量: 实例变量 对象.属性=xxx 类变量 ...
- Python 面向对象二(转载)
来源:www.cnblogs.com/wupeiqi/p/4766801.html 三.类成员的修饰符 类的所有成员在上一步骤中已经做了详细的介绍,对于每一个类的成员而言都有两种形式: 1.公有成员, ...
- 四十一、python面向对象二
A.成员: 1.字段:静态字段(每个对象都有同一字段),普通字典(每个对象都有不同的数据) 2.方法:静态方法(无需使用对象的内容),类方法,普通方法(使用对象中的数据) 3.特性:普通特性(将方法伪 ...
- Python自动化开发 - 面向对象(二)
本节内容 1.isinstance(obj,cls)和issubclass(sub,super) 2.反射 3.__setattr__,__delattr__,__getattr__ 一. isins ...
随机推荐
- c++ static关键字的作用
1.被申明的函数或值无法被其他源文件使用 2.static的第二个作用是保持变量内容的持久.(static变量中的记忆功能和全局生存期) 存储在静态数据区的变量会在程序刚开始运行时就完成初始化,也是唯 ...
- poj 3660 Cow Contest (bitset+floyd传递闭包)
传送门 解题思路 考试题,想到传递闭包了,写了个O(n^3)的,T了7个点...后来看题解是tm的bitset优化???以前好像没听过诶(我太菜了),其实也不难,时间复杂度O(n^3/32) #inc ...
- VS2010-MFC(对话框:非模态对话框的创建及显示)
转自:http://www.jizhuomi.com/software/162.html 前面已经说过,非模态对话框显示后,程序其他窗口仍能正常运行,可以响应用户输入,还可以相互切换.本节会将上一讲中 ...
- 郝斌–SQL Server2005学习笔记
数据库(Database)狭义上是指存储数据的仓库,广义上包含对数据进行存储和管理的软件(DBMS)和数据本身.数据库由表.关系和操作组成. 一.数据库简介 1.为什么需要数据库 数据库简化了对数据的 ...
- {Django基础七之Ajax} 一 Ajax简介 二 Ajax使用 三 Ajax请求设置csrf_token 四 关于json 五 补充一个SweetAlert插件(了解)
{Django基础七之Ajax} 一 Ajax简介 二 Ajax使用 三 Ajax请求设置csrf_token 四 关于json 五 补充一个SweetAlert插件(了解) Django基础七之 ...
- Ubuntu 16.04 安装STS
先将STS下载下来,网址是 https://spring.io/tools/sts/all ,然后将STS压缩包移动或者copy到想要放置的位置,比如, sudo cp spring-tool-sui ...
- mysql-connector-java-8.0.12使用时报错
配置url加 &useSSL=false&serverTimezone=UTC 就可以了
- 目标检测从入门到精通—SPP-Net详细解析(三)
SPP-Net网络结构分析 Author:Mr. Sun Date:2019.03.18 Loacation: DaLian university of technology 论文名称:<Spa ...
- 简单排列习题2.5 的 2 - 6 P35
用1,2,3,...9组成3个3位数abc, def, ghi:每个数字恰好用一次,要求 abc:def :ghi = 1: 2 : 3:按照abc : def : ghi的格式输出. 通常想到的思路 ...
- [转]WPF and Silverlight 学习笔记(二十五):使用CollectionView实现对绑定数据的排序、筛选、分组
在第二十三节,我们使用CollectionView实现了对于绑定数据的导航,除导航功能外,还可以通过CollectionView对数据进行类似于DataView的排序.筛选等功能. 一.数据的排序: ...