魔法方法
1.__xx__  总是被双下划线包围
2.面向对象python的一切
3.能够在适当的时候自动被调用
 
 
构造和析构
 __init__(self,……) -----相当于构造方法,类在实例化对象的时候首先调用的方法
可以在此对所有涉及到的变量定义并初始化,避免触发__repr__/__str__魔法方法时,出现异常】
 
 
类定义时,有时候写有时不写的原因:
由需求来定!【需要初始化操作时】
 
比如需要传入两个参数时 ---__init__(self,x,y)
赋值时:
self.x =  x
self.y =y    实例化后对象中的值 = 参数
 
 
__init__方法传回的是None对象,不能在其中return xxx
 
对象实例化所调用第一个方法是__new__(类【,……】)方法  如果有参数,该参数原封不动的传给__init__方法
极少重写,返回一个实例化对象
 
但继承不可变类且要修改的时候,要重写:
class AAA(str)://由于str不可改变,所以,无法通过__init__方法对其修改,因为__init__自身就是一个不可改变的对象
  def __new__(cls,string)://因为str不可修改,所以要在实例化之前调用此方法
     string = string.upper()
     return str.__new__(cls,string) //让str的__new__方法处理return
析构器__del__(self)
不是用的时候就直接删除,而是该对象的所有引用均被删除的时候,再del xx就会自动调用该方法
 
 
工厂函数 ----就是类对象
类定义好之后,就是类对象
class C:
  pass
type(C) --- type
 
a  = int('123') ---返回实例对象
 
 
魔法方法中进行算术运算时:
小心无限迭代
class AA(int):
  def __add__(self,other)
    return int.__add__(self,other)//正确用法
a = AA(3)
b = AA(4)
a+b
7
若 return self + other
则无限迭代 ---"+"触发__add__(self,other)
 

 
魔法方法中的算术

通过对指定魔法方法的重写,完全可以让python去实现自己的意图
class int(int):
  def __add__(self,other):
      return int.__xxx__(self,other)

 
简单定制
  定制计时器的类
使用time模块的localtime方法获得时间
 ---time模块的详解(时间获取+转换)
https://fishc.com.cn/forum.php?mod=viewthread&tid=51326&extra=page%3D1%26filter%3Dtypeid%26typeid%3D403
time.localtime返回struct_time的时间格式
表现你的类
__str__【被打印时需要字符串输出的时候,自动触发的魔法方法
 
__repr__【
class xx():
def __repr__:
  return "xxxxx"
a = xx()
a//直接调用对象时,自动触发的魔法方法
xxxx】
 
 
属性访问

class C():
  def __init__(self):
    self.x = 'yyy'
1.c= C()
   c.x //访问属性

2.getattr(a,'b','c') //类,哪个属性,如果没有显示的文字
3.x = property(获得属性的名字,设置,删除) ---以属性的方法访问属性
通过c.x访问别的属性 删除c.x也会删除c.*相应的属性
 
 
所有的类的父类都是object类!!!!即使没有明示Xx(y),也是默认
 
 
描述符
将某种特殊类型的类【实现以下或其中一个】的实例指派给另一个类的属性
1.__get__(self,instance,owner)//访问属性,返回属性的值
2.__set__(self,instance,value)//将在属性分配【即赋值】中调用,不返回任何内容
3.__delete__(self,instance)//控制删除操作,不反回任何内容
 

__doc__ ---格式有问题

需要print(xx.__doc__)
 
 
help(xx)
 
dir(xx) --查看xx的列表
 
如果有__all__,可利用xx.__all__过滤没用的,得到主要的
若有__all__,则此处采用from xx import *引入的即是xx.__all__的
 
 
__file__属性   ----源代码的位置
 
 
类对象实例对象

Python笔记 【无序】 【四】的更多相关文章

  1. [Python笔记]第四篇:内置函数

    本篇主要内容:内置函数 函数 参考:https://docs.python.org/3.5/library/functions.html 内置函数列表 一.数学运算类 abs(x)求绝对值 >& ...

  2. [Python笔记][第四章Python正则表达式]

    2016/1/28学习内容 第四章 Python字符串与正则表达式之正则表达式 正则表达式是字符串处理的有力工具和技术,正则表达式使用预定义的特定模式去匹配一类具有共同特征的字符串,主要用于字符串处理 ...

  3. Python笔记(四):异常处理机制与 open()

    (一)  异常处理机制概述 就像日常生活中会遇到各种意外情况一样(例如:你可能考虑过如果中了500w该怎么做),代码运行过程中也会遇到这种意外情况,python提供了这么一种机制,处理意外情况(就像如 ...

  4. 【和孩子一起学编程】 python笔记--第四天

    第十一章: 可变循环 newStars = int(input("how many stars do you want?")) for i in range(newStars): ...

  5. devi into python 笔记(四)python的类

    import 与 from ... import ...: #types只是一个包,FunctionType只是这个包里的一个函数.这里用它来演示 import types #如果要用Function ...

  6. Python笔记·第四章—— 细数Python中的数据类型以及他们的方法

    一.数据类型的种类及主要功能 1.数字类型 数字类型主要是用来计算,它分为整数类型int和浮点类型float 2.布尔类型 布尔类型主要是用于判断,它分为真True和False两种 3.字符串类型 字 ...

  7. Python笔记(十四)_永久存储pickle

    pickle模块:将所有的Python对象转换成二进制文件存放 应用场景:编程时最好将大对象(列表.字典.集合等)用pickle写成永久数据包供程序调用,而不是直接写入程序 写入过程:将list转换为 ...

  8. python笔记十四(高阶函数——map/reduce、filter、sorted)

    一.map/reduce 1.map() map(f,iterable),将一个iterable对象一次作用于函数f,并返回一个迭代器. >>> def f(x): #定义一个函数 ...

  9. Python笔记(四)

    # -*- coding:utf-8 -*- # 控制语句 # if...else... print "********************1********************** ...

  10. Python学习笔记(四)

    Python学习笔记(四) 作业讲解 编码和解码 1. 作业讲解 重复代码瘦身 # 定义地图 nav = {'省略'} # 现在所处的层 current_layer = nav # 记录你去过的地方 ...

随机推荐

  1. mybatis下载地址(所有版本)

    https://github.com/mybatis/mybatis-3/releases,这个github里面几乎包含了所有的没有batis

  2. 黑苹果是否会成为mac电脑的竞争对手?

    最近黑科技技术大佬们都在传扬windows系统上安装mac系统,不用买mac电脑也可以使用mac一样的操作环境.什么是黑苹果?一起来看看如何在windows系统上安装mac系统. 更多专题,可关注小编 ...

  3. 机器学习-随机梯度下降(Stochastic gradient descent)

    sklearn实战-乳腺癌细胞数据挖掘(博主亲自录制视频) https://study.163.com/course/introduction.htm?courseId=1005269003& ...

  4. REST_返回形式

    摘录: "Web resources" were first defined on the World Wide Web as documents or files identif ...

  5. zookeeper安装(集群)

    Dubbo 建议使用Zookeeper 作为服务的注册中心.Zookeeper 集群中只要有过半的节点是正常的情况下,那么整个集群对外就是可用的.正是基于这个特性,要将ZK 集群的节点数量要为奇数(2 ...

  6. 从Paxos到Zookeeper分布式一致性原理与实践 读书笔记之(一) 分布式架构

    1.1 从集中式到分布式 1 集中式特点 结构简单,无需考虑对多个节点的部署和节点之间的协作. 2  分布式特点 分不性:在时间可空间上随意分布,机器的分布情况随时变动 对等性:计算机之间没有主从之分 ...

  7. CSS常用选择器的认识

    ---恢复内容开始--- 前言:在CSS中选择器的种类有很多很多,但是在实际的工作中,我们经常会用到的分为两大类:基础选择器和复合选择器这两个大类,学习选择器的目的就是为了在复杂的页面中能够快速定位到 ...

  8. Linux 内核源代码根目录

    1.    arch :与体系结构相关的文件 2.    block: 包含块存储设备IO调度算法的实现 3.    cryrto: 密码操作有关 4.    Documention: 内核中各个子系 ...

  9. STM32学习笔记:【002】BIN文件通过ST-LINK烧录STM32芯片

    以下提供2种下载方式 KEIL编译下载 KEIL 5 在开发中还算是比较强大的一种平台.在开发中通过编译再下载会显得很方便. 尽管这个是老生常谈的问题,但还是在这里补全这个设置步骤 1.点击“魔法棒” ...

  10. shop++改造之Filter类

    基于shop++源码进行商城改造.本来想大展手脚,结果一入手.发觉瞬间淹没了我的才华,sql语句也得贼溜没啥用. 不得不说这个商城源码价值很高,封装的很精屁. 下面是我第一天入手的坑. 数据库建好了表 ...