python编程基础之三十三
构造方法:
目的:构造方法用于初始化对象,可以在构造方法中添加成员属性
触发时机:实例化对象的时候自动调用
参数:第一个参数必须是self,其它参数根据需要自己定义
返回值:不返回值,或者说返回None,不应该返回任何其他值
def __init__(self,arg1,arg2....):
函数体
#参数:arg1,agr2...根据需要自己定义
#如果自己不定义构造方法,系统自动生成一个构造函数
def __init__(self):
pass
如果自己没有写构造方法,系统会自动生成一个构造方法,里面除了self,没有任何参数,
class Dog(object):
def __init__(self,name,kind,age):
self.name = name #定义对象属性,这个类所有的对象都具有该属性
self.kind = kind #成员属性必须通过self.引用,否则是普通变量
self.age = age def bark(tmp):
print('我是小可爱') dingding = Dog('大黄','泰迪',3)
print('我是可爱的%s犬,%s,我今年%d岁了' % (dingding.kind, dingding.name, dingding.age))
析构方法:
目的:对象销毁时,释放资源
时机:对象销毁时由系统自动调用
参数:除了self外,没有其他参数
返回值:不返回值,或者说返回None。
def __del__(self): #to do
class Dog(object):
#构造
def __init__(self,name,kind,age):
self.name = name
self.kind = kind
self.age = age
#析构
def __del__(self):
print('拜拜了,二十年后又是一条好汉')
def bark(tmp):
print('我是小可爱--丁丁') dingding = Dog('丁丁','泰迪',3)
print('我是可爱的%s犬,%s,我今年%d岁了' % (dingding.kind, dingding.name, dingding.age))
del dingding #销毁对象,自动调用析构方法 #在函数中对象,当函数结束运行时,自动析构
def test():
td = Dog('当当','泰迪',3)
还介绍一个魔术方法比较常用:__str__()
这个魔术方法可以让你定义的对象输出的时候不会是一个地址了,看到的可以是你希望看到的字符串,
目的:将对象转化为字符串
时机:凡是涉及对象向字符串转换的都会调用
参数:self
返回值:字符串
class Animal:
def __init__(self,name,age):
self.name = name
self.__age =age
def __str__(self):
return "name : {} age : {}".format(self.name,self.__age)
def __repr__(self):
return self.__str__()
a1 = Animal('zhu',3)
print(a1)
print('我是一头可爱的 ' + str(a1)
__str__()
python编程基础之三十三的更多相关文章
- python编程基础之三十
时间模块: 时间戳:就是当前是键距离1970年1月1日0:0:0的秒数,后面还带小数,可以说是非常精确 时间的表示形式: a.以整数或者浮点数表示一个以秒为单位的时间间隔,这个时间的基础值1970.1 ...
- python编程基础之三十七
数据的持久化:数据持久化就是将内存中的对象转换为存储模型,以及将存储模型转换为内存中的对象的统称. 对象可以是任何数据结构或对象模型,存储模型可以是关系模型.XML.二进制流等 Python的数据持久 ...
- python编程基础之三十四
面向对象:三大特征:封装,继承,多态 封装:隐藏对象的实现过程,对外仅仅公开接口,控制在程序中的读取和修改的访问级别 类,函数都是一种封装 属性私有化:当类里面的属性不想被外部访问,可以将这些属性设置 ...
- python编程基础之三
变量 变量定义:变量名 = 值 #不需要给定变量类型 变量命名规范:也就是标识符的命名规则, 1.由数字,字母,下划线组成,不允许数字开头 2.区分大小写 3.不能是系统保留字(keyword) 获 ...
- python编程基础之三十八
正则表达式:正则表达式是对字符串操作的一种逻辑公式,就是用事先定义好的一些特定字符.及这些特定字符的组合,组成一个“规则字符串”,这个“规则字符串”用来表达对字符串的一种过滤逻辑. 需要引入内置模块r ...
- python编程基础之三十六
文件处理:文件处理包括读文件,写文件 读文件: 1.打开文件 2.读取文件 3.关闭文件 写文件: 1.打开文件 2.写如文件 3.关闭文件 无论是读取文件还是写文件都时需要打开文件,和关闭文件 打开 ...
- python编程基础之三十五
系统的魔术方法:系统的魔术方法特别多,但是也都特别容易懂,简单的讲就是对系统的内置函数进行重写,你需要什么效果就重写成什么样, 比如说len()方法针对的对象本来没有自定义类的对象,但是当你重写了__ ...
- python编程基础之三十二
成员方法:成员方法就是一个函数,只是作用域在类内,并且第一个参数必须是self,self代表当前对象, class Dog(object): def bark(self): #成员方法,第一个参数必须 ...
- python编程基础之三十一
面向对象:一开始接触面向对象其实感觉不好用,但是对于一些复杂的问题,使用面向对象其实更加容易,逻辑不容易混乱 它的核心是:类 和 对象 类:对一系列事物的抽象概念,可以视为一张图纸, 对象:就是对类这 ...
随机推荐
- Erlang中的RSA签名
RSA签名校验 -spec check_rsa_sign(DataBin, Sign, RSAPublicKeyBin, DigestType) -> boolean when DataBin ...
- Mysql 用户root密码重置
Asterisk安装完成之后,接手新的Asterisk系统后不清楚Mysql的root账号密码. 重新重置mysql的root密码的方式 先查看mysql的版本号. 我的测试环境下的mysql版本为5 ...
- 基于SSM后台管理系统/人事管理系统
今天给大家分享一个基于SpringMVC+Mybatis+Mysql的后台管理系统,顾名思义,一个系统一般分为前台和后台,前台主要面向用户,而后台主要面向的则是管理员,后台和前台有所不同,后台的业务一 ...
- 算法与数据结构基础 - 递归(Recursion)
递归基础 递归(Recursion)是常见常用的算法,是DFS.分治法.回溯.二叉树遍历等方法的基础,典型的应用递归的问题有求阶乘.汉诺塔.斐波那契数列等,可视化过程. 应用递归算法一般分三步,一是定 ...
- Redis常用命令(key、string、List)
1.Key 1.keys * 查询所有数据 2.exists key名 判断key名是否存在 3.move key名 数据库号(0-15) 移动数据key名到相应的数据库 4.expire ...
- java获取电脑mac物理地址
import java.net.InetAddress;import java.net.NetworkInterface;import java.net.SocketException;import ...
- 从原理到场景 系统讲解 PHP 缓存技术
第1章课程介绍 此为PHP相关缓存技术的课堂,有哪些主流的缓存技术可以被使用? 第1章 课程介绍 1-1课程介绍1-2布置缓存的目的1-3合理使用缓存1-4哪些环节适合用缓存 第2章 文件类缓存 2- ...
- 02 (OC)* ViewController 的声明周期
一. UIViewController 的 生命周期 代码 示例 #pragma mark --- life circle // 非storyBoard(xib或非xib)都走这个方法 - (inst ...
- 【PyTorch】Tricks 集锦
声明:本文大部分内容是从知乎.博客等知识分享站点摘录而来,以方便查阅学习.具体摘录地址已在文章底部引用部分给出. 1. 查看模型每层输出详情 from torchsummary import summ ...
- 使用docker安装mysql并连接
1.查找镜像: docker search mysql 也可以去官网查看镜像tag,选择自己需要的版本,否则会下载最新版本:https://hub.docker.com/_/mysql/ 2.下载镜像 ...