构造方法:

  • 目的:构造方法用于初始化对象,可以在构造方法中添加成员属性

  • 触发时机:实例化对象的时候自动调用

  • 参数:第一个参数必须是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编程基础之三十三的更多相关文章

  1. python编程基础之三十

    时间模块: 时间戳:就是当前是键距离1970年1月1日0:0:0的秒数,后面还带小数,可以说是非常精确 时间的表示形式: a.以整数或者浮点数表示一个以秒为单位的时间间隔,这个时间的基础值1970.1 ...

  2. python编程基础之三十七

    数据的持久化:数据持久化就是将内存中的对象转换为存储模型,以及将存储模型转换为内存中的对象的统称. 对象可以是任何数据结构或对象模型,存储模型可以是关系模型.XML.二进制流等 Python的数据持久 ...

  3. python编程基础之三十四

    面向对象:三大特征:封装,继承,多态 封装:隐藏对象的实现过程,对外仅仅公开接口,控制在程序中的读取和修改的访问级别 类,函数都是一种封装 属性私有化:当类里面的属性不想被外部访问,可以将这些属性设置 ...

  4. python编程基础之三

    变量 变量定义:变量名 = 值  #不需要给定变量类型 变量命名规范:也就是标识符的命名规则, 1.由数字,字母,下划线组成,不允许数字开头 2.区分大小写 3.不能是系统保留字(keyword) 获 ...

  5. python编程基础之三十八

    正则表达式:正则表达式是对字符串操作的一种逻辑公式,就是用事先定义好的一些特定字符.及这些特定字符的组合,组成一个“规则字符串”,这个“规则字符串”用来表达对字符串的一种过滤逻辑. 需要引入内置模块r ...

  6. python编程基础之三十六

    文件处理:文件处理包括读文件,写文件 读文件: 1.打开文件 2.读取文件 3.关闭文件 写文件: 1.打开文件 2.写如文件 3.关闭文件 无论是读取文件还是写文件都时需要打开文件,和关闭文件 打开 ...

  7. python编程基础之三十五

    系统的魔术方法:系统的魔术方法特别多,但是也都特别容易懂,简单的讲就是对系统的内置函数进行重写,你需要什么效果就重写成什么样, 比如说len()方法针对的对象本来没有自定义类的对象,但是当你重写了__ ...

  8. python编程基础之三十二

    成员方法:成员方法就是一个函数,只是作用域在类内,并且第一个参数必须是self,self代表当前对象, class Dog(object): def bark(self): #成员方法,第一个参数必须 ...

  9. python编程基础之三十一

    面向对象:一开始接触面向对象其实感觉不好用,但是对于一些复杂的问题,使用面向对象其实更加容易,逻辑不容易混乱 它的核心是:类 和 对象 类:对一系列事物的抽象概念,可以视为一张图纸, 对象:就是对类这 ...

随机推荐

  1. jQuery - 01. jQuery特点、如何使用jQuery、jQuery入口函数、jQuery和DOM对象的区别、jQuery选择器、

    this指的是原生js的DOM对象 .css(“”):只写一个值是取值,写俩值是赋值 window.onload   ===   $(document).ready(); $(“”):获取元素   标 ...

  2. 【3】Decision tree(决策树)

    前言 Decision tree is one of the most popular classification tools 它用一个训练数据集学到一个映射,该映射以未知类别的新实例作为输入,输出 ...

  3. 【Spring】事务

    一.数据库事务概述 二.Spring中事务 1. Spring 事务管理: 2. Spring 事务管理的API: 2.1 API概述 2.2 PlatformTransactionManager 接 ...

  4. 如何使用React搭建项目

    1.首先说明node.js.npm.cnpm分别是做什么的? node.js简单的说 Node.js 就是运行在服务端的 JavaScript,安装了node.js默认安装了npm,可以使用npm - ...

  5. c语言实现字符指针(字符串)数组的排序

    需求: "ff555d", "114ddd", "114dd","aaa", "aaab", &qu ...

  6. 从网页跳转到自己的app

    展开该数据并点击 Item 0.你将在这里定义自定义 URL scheme 的名字.只需要名字,不要在后面追加 :// — 比如,如果你输入 iOSDevApp,你的自定义 url 就是 iOSDev ...

  7. Vuex,从入门到...

    Vuex 是什么? 官方是这么说的:Vuex 是一个专为 Vue.js 应用程序开发的状态管理模式.它采用集中式存储管理应用的所有组件的状态,并以相应的规则保证状态以一种可预测的方式发生变化. 不懂? ...

  8. Node.js之异步编程

    > 文章原创于公众号:程序猿周先森.本平台不定时更新,喜欢我的文章,欢迎关注我的微信公众号. ![file](https://img2018.cnblogs.com/blog/830272/20 ...

  9. Spring Cloud 系列之 Spring Cloud Stream

    Spring Cloud Stream 是消息中间件组件,它集成了 kafka 和 rabbitmq .本篇文章以 Rabbit MQ 为消息中间件系统为基础,介绍 Spring Cloud Stre ...

  10. Hadoop集群常用的shell命令

    Hadoop集群常用的shell命令 Hadoop集群常用的shell命令 查看Hadoop版本 hadoop -version 启动HDFS start-dfs.sh 启动YARN start-ya ...