python进阶02 特殊方法与特殊属性】的更多相关文章

python进阶02 特殊方法与特殊属性 一.初始化.析构 1.初始化 # python中有很多双下划线开头且以下划线结尾的固定方法,它们会在特定的时机被触发执行,这便是特殊方法 # 在实例化的时候就进行初始化,这样做的意义类似于:一个孩子出生就有性别,而不是出生以后再给他一个性别.这便是__init__的由来. class Account: def __init__(self,name,number,balance): self.name=name self.number=number sel…
python进阶之内置方法 字符串类型的内置方法 常用操作与方法: 按索引取值 str[index] 切片 ste[start:stop:step] 长度 len(str) 成员运算in和not in str1 in str2; str1 not in str2 移除空白 str.strip() 切分 str.split() 循环 for i in str : 需要掌握的: 左/右去除空白 lstrip/rstrip 截掉 string 左/右边的空格 大/小写 upper/lower 转换 s…
1.import导入模块 import sys sys.path:显示的是:从显示目录中查找要导入的模块文件. 程序执行时导入模块路径:sys.path.append('/home/itcast/xxx'):sys.path.insert(0, '/home/itcast/xxx') 重新导入模块:reload(mudule) 2.==.is之间区别 is :比较两个引用是否指向同一个对象 ==:比较两个对象是否相等 3.深拷贝浅拷贝 浅拷贝:拷贝了引用没有拷贝内容,a=[1,3,4];b=a…
# 魔术方法--常规方法# 1. __int__ 构造函数# 2. __new__ 在类实例之前就创建了# 3. __iter__ 迭代器# 4. __del__ 析构方法,用来清除释放的对象内存# 5. __class__ 魔术属性,返回所有的类--元类# 6. __str__ 返回类+属性# 7. __repr__ 返回类+属性,与__str__类似# 8. __dict__ 返回类属性和对应的属性值,存储在字典中# 9. dir() 返回当前类的属性和python内置属性,但不显示当前类属…
目录 目录 构造器和解构器 构造器 __init__ 真构造器 __new__ 解构器 __del__ 实例方法 Python 中的 抽象方法 实例属性 查看实例属性 实例属性和类属性的区别 访问不可变类属性 访问可变类属性 构造器和解构器 构造器 __init__() 类函数 __init__() 是 Python 类中预定义的方法,需要被重载才会生效.以双下划线 "__" 开头和结尾, 在 Python 中使用这种命名方式的方法会被理解为是一种特殊方法, Python 的特殊方法功…
目录 目录 类属性 调用类属性 查看类属性 特殊的类属性 类方法 真构造器 __new__ 类属性 在理解类属性之前要先搞清楚 实例属性 和 函数属性 之间的区别: 1. 实例属性:指的是实例化类对象的属性,需要在类中使用 self 关键字来将其和实例化对象绑定的属性. 2. 函数属性:指的是定义在函数体内的属性,其可以是实例属性,也可以是类属性. 3. 类属性:是一个与实例无关的属性,比起实例属性而言,它更加的 静态,当定义在类方法中时,并不会因为方法调用的完毕而被回收.类属性,在类定义中直接…
特殊属性 查看属性 #animal.py class Animal: x = 123 def __init__(self,name): self._name = name self.__age = 10 self.weight = 20 print('animal Module\'s names = {}'.format(dir())) #animal Module's names = ['Animal', '__annotations__', '__builtins__', '__cached…
前言 对于任何一个python文件来说,当python解释器运行一个py文件,会自动将一些内容加载到内置的属性中:一个模块我们可以看做是一个比类更大的对象. 查看模块的内置属性 我们先创建一个典型的py文件 # test.py # -*- coding: utf-8 -*- """ some doc """ import os var1 = None class Person(object): pass if __name__ == "…
作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明.谢谢! Python具有基本的文本文件读写功能.Python的标准库提供有更丰富的读写功能. 文本文件的读写主要通过open()所构建的文件对象来实现. 创建文件对象 我们打开一个文件,并使用一个对象来表示该文件: f = open(文件名,模式) 最常用的模式有: "r"     # 只读 "w"     # 写入 比如 >>>f = o…
Python 具有基本的文本文件读写功能,Python的标准库提供有更丰富的读写功能. 文本文件的读写主要通过open()所构建的文件对象来实现 创建文件对象 我们打开一个文件,并适用一个对象来表示该文件: f = open(文件名,模式) 最常用的模式有: "r"   # 只读 "w"  # 写入 比如 >>>f = open("test.txt","r") 文件对象的方法 读取: content = f.…
上一篇文章介绍了面向对象基本知识: 面向对象是一种编程方式,此编程方式的实现是基于对 类 和 对象 的使用 类 是一个模板,模板中包装了多个“函数”供使用(可以讲多函数中公用的变量封装到对象中) 对象,根据模板创建的实例(即:对象),实例用于调用被包装在类中的函数 面向对象三大特性:封装.继承和多态 本篇将详细介绍Python 类的成员.成员修饰符.类的特殊成员. 注意点: self ,我们讲过了,self = 对象,实例化后的对象调用类的各种成员的时候的self就是这个对象. 而且我们也讲过了…
上一篇文章介绍了面向对象基本知识: 面向对象是一种编程方式,此编程方式的实现是基于对 类 和 对象 的使用 类 是一个模板,模板中包装了多个“函数”供使用(可以讲多函数中公用的变量封装到对象中) 对象,根据模板创建的实例(即:对象),实例用于调用被包装在类中的函数 面向对象三大特性:封装.继承和多态 本篇将详细介绍Python 类的成员.成员修饰符.类的特殊成员. 注意点: self ,我们讲过了,self = 对象,实例化后的对象调用类的各种成员的时候的self就是这个对象. 而且我们也讲过了…
面向对象是一种编程方式,此编程方式的实现是基于对 类 和 对象 的使用 类 是一个模板,模板中包装了多个“函数”供使用(可以讲多函数中公用的变量封装到对象中) 对象,根据模板创建的实例(即:对象),实例用于调用被包装在类中的函数 面向对象三大特性:封装.继承和多态 类的成员 类的成员可以分为三大类:字段.方法和属性 注:所有成员中,只有普通字段的内容保存对象中,即:根据此类创建了多少对象,在内存中就有多少个普通字段.而其他的成员,则都是保存在类中,即:无论对象的多少,在内存中只创建一份. 一.字…
Python进阶----类的结构(公有成员 , 私有成员(私有属性,私有方法),类方法,静态方法,属性) ,isinstance 和issubcalss ,元类(type()) 一丶类的结构细分     成员:       公有属性(静态属性,对象属性),私有属性(私有静态属性,私有对象属性),私有方法,公有方法,类方法,静态方法,属性.代码如下:…
前言 前面我们总结过了python的关键字.运算符.内置函数.语法糖等与python魔法方法之间的关系,现在我们更细一点,看看python的面向对象编程有哪些常用的魔法属性和魔法方法. 魔法属性 对于一个类,python定义了许多可用的魔法属性,有些每个类都默认存在,有些需要用户手动定义. __dict__ __dict__属性可以说是一个类最常用的属性之一了,它又分为类的__dict__属性和实例的__dict__属性. class Person(object): eye = 2 hand =…
1.python 面向对象 文章内容摘自:http://www.cnblogs.com/vamei/archive/2012/06/02/2532018.html   1.__init__() 创建对象时的初始化方法 __init__()是一个特殊方法(special method).Python有一些特殊方法.Python会特殊的对待它们.特殊方法的特点是名字前后有两个下划线. 如果你在类中定义了__init__()这个方法,创建对象时,Python会自动调用这个方法.这个过程也叫初始化. c…
python进阶01 面向对象.类.实例.属性封装.实例方法 一.面向对象 1.什么是对象 #一切皆对象,可以简单地将“对象”理解为“某个东西” #“对象”之所以称之为对象,是因为它具有属于它自己的“特征”和“行为” 2.面向过程和面向对象 #面向过程指的是变量和函数.“散落”在各种文件中,或者在文件的各个位置,相互没有联系,函数与变量没有相关性,非常不利于维护,设计模式不清晰. #为此才有面向对象概念的诞生. #面向对象指的是相关的变量和函数都“封装”在对象里面,以对象为单位来管理代码.好处在…
Python进阶----线程基础,开启线程的方式(类和函数),线程VS进程,线程的方法,守护线程,详解互斥锁,递归锁,信号量 一丶线程的理论知识 什么是线程:    1.线程是一堆指令,是操作系统调度的最小单位    2.线程具有执行能力 ​   3.线程依赖于进程 ​   4.具有主从关系(人为定义,每一个进程都至少有一个主线程 二丶开启线程的两种方式(Thread) 类的方式开启线程 ### 利用到Thread from threading import Thread class MyThr…
Python进阶----进程间数据隔离, join阻塞等待, 进程属性, 僵尸进程和孤儿进程, 守护进程 一丶获取进程以及父进程的pid 含义:    进程在内存中开启多个,操作系统如何区分这些进程,每个进程都有一个唯一表示 方法三种方法:     一,终端查看所有pid tasklist     二,指定具体的PID tasklist | findstr python     三,代码查看pid os 模块 ### 利用os 模块 查看 pid(当前进程id) 和 ppid(父进程id) im…
Python进阶----反射(四个方法),函数vs方法(模块types 与 instance()方法校验 ),双下方法的研究 一丶反射 什么是反射: ​ 反射的概念是由Smith在1982年首次提出的,主要是指程序可以访问.检测和修改它本身状态或行为的一种能力(反射).这一概念的提出很快引发了计算机科学领域关于应用反射性的研究.它首先被程序语言的设计领域所采用,并在Lisp和面向对象方面取得了成绩. Python面向对象的反射: ​ 通过字符串的形式操作对象相关的属性.python中的一切事物都…
热爱Python Python是Guido van Rossum设计出来的让使用者觉得如沐春风的一门编程语言.2020年11月12日,64岁的Python之父宣布由于退休生活太无聊,自己决定加入Microsoft的DevDiv Team,致力于"确保更好地使用Python".尽管在国内有些声音在Diss着Python,认为它太简单,只是个脚本语言,但是它的发明者对Python的热情,仍然激励着我们坚持对Python的热爱. 龟叔是所有编程语言发明者当中头发最多的这位. 奇迹时刻 col…
以下内容,源于个人理解所得,纯属臆测,爱信不信:-D.欢迎大家留言讨论指正. 1.__new__魔法方法: 原型:__new__(cls, *args, **kwargs) 说明:__new__魔法方法用于对象的实例化,作用于__init__初始化对象之前.其中cls为需要实例化的类.new方法必须有返回值,即为实例化后的对象.可以被用于创建单例模式,限制该类实例化的对象个数. class SingleTon(object): instance = {} def __new__(cls, *ar…
Python中有一个被称为属性函数(property)的小概念,它可以做一些有用的事情.在这篇文章中,我们将看到如何能做以下几点: 将类方法转换为只读属性 重新实现一个属性的setter和getter方法 在本文中,您将学习如何以几种不同的方式来使用内置的属性函数.希望读到文章的末尾时,你能看到它是多么有用. 开始 使用属性函数的最简单的方法之一是将它作为一个方法的装饰器来使用.这可以让你将一个类方法转变成一个类属性.当我需要做某些值的合并时,我发现这很有用.其他想要获取它作为方法使用的人,发现…
前一篇文章<Python 中如何实现参数化测试?>中,我提到了在 Python 中实现参数化测试的几个库,并留下一个问题: 它们是如何做到把一个方法变成多个方法,并且将每个方法与相应的参数绑定起来的呢? 我们再提炼一下,原问题等于是:在一个类中,如何使用装饰器把一个类方法变成多个类方法(或者产生类似的效果)? # 带有一个方法的测试类 class TestClass: def test_func(self): pass # 使用装饰器,生成多个类方法 class TestClass: def…
一.__init__()方法 如果__init__()方法为 class Cat(): def __init__(self,num) : self.num=num Python中类的__init__()方法中形参:self.当Python通过__init__()方法创建实例时,将自动传入一个实参self,与类相关联的方法都会自动传递实参self,它是指向实例本身的引用,实例可以访问类中的属性和方法.. 以self为前缀的变量,都供类中的所有方法使用.self.num= num中num获取传递给n…
Python进阶学习之特殊方法实例详析 最近在学习python,学习到了一个之前没接触过的--特殊方法. 什么是特殊方法?当我们在设计一个类的时候,python中有一个用于初始化的方法$__init__$,类似于java中的构造器,这个就是特殊方法,也叫作魔术方法.简单来说,特殊方法可以给你设计的类加上一些神奇的特性,比如可以进行python原生的切片操作,迭代.连乘操作等.在python中,特殊方法以双下划线开始,以双下划线结束. 一个大例子 数学中有一个表示数的概念叫做向量,但是python…
第7.26节 Python中的@property装饰器定义属性访问方法getter.setter.deleter 详解 一.    引言 Python中的装饰器在前面接触过,老猿还没有深入展开介绍装饰器相关的内容,在后面将单独的章节来介绍.Python总共包括三个内置装饰器(注意abstractmethod这个装饰器是从abc模块导入的,不是内置的),除了前面介绍的类方法装饰器classmethod.静态方法装饰器staticmethod外,还有一个property装饰器,这个装饰器与prope…
一. 引言 在<第7.23节 Python使用property函数定义属性简化属性访问的代码实现>和<第7.26节 Python中的@property装饰器定义属性访问方法getter.setter.deleter 详解>中介绍了两种设置属性访问方法,通过设置可以在相关属性访问时调用对应的方法执行访问,但这种方法只能针对每个属性去设置,由于没有参数能给出当前访问的属性名,因此不同属性必须调用不同的方法,并且上述方法都是为了不支持简单访问的属性设置简单访问方法(如对象名.属性名.赋值…
私有属性是对象不希望公开的属性,私有方法是对象不希望公开的方法.在定义私有属性和私有方法时,在属性或者方法前,加上__(两个下划线) 公有方法可以通过对象名直接调用,私有方法不能通过对象名直接调用,只能在属于对象的方法中通过self调用或在外部通过Python支持的特殊方式来调用 继承中私有属性和私有方法问题:子类不能继承父类的私有属性,不能调用父类的私有方法. 父类中的私有属性和私有方法: 1.子类对象不能在自己的方法内部,直接访问父类的私有属性和私有方法 2.子类对象可以通过父类的共有方法简…
该部分的三个属性都是高级方法,平时用的地方不是很多 一.静态方法 静态方法的使用不是很多,可以理解的就看一下,用的地方不是很多 class Dog(object): def __init__(self,name): self.name = name # 静态方法:平时用的不是很多,可以通过联想中国和台湾的关系来记忆 # 只是名义上归类管理,实际上在静态方法中访问不了类或实例中的任何属性 @staticmethod # 变成静态方法之后该方法就和类没什么关系了,就只是相当于一个单纯的函数, def…