3 偷得浮生半日

尚未进行身份认证

我要认证

暂无相关简介

等级
TA的排名 6w+

python 私有属性和私有方法

私有属性和私有方法 python对于类的成员没有严格的访问控制限制,这与其他面向对象语言有区别,关于私有属性和私有方法,有如下要点: 1.通常我们约定,两个下划线开头的属性是私有的(private),其他为公共的(public)。 2.类内部可以访问私有属性(方法) 3.类外部不能直接访问私有属性(方法) 4.类外部可以通过“_类名__私有属性(方法)名“访问私有属性(方法)【注】:方法本质上也是属性!只不过是可以通过()执行而已,所...

2020-09-25 16:38:44

python方法没有重载以及方法的动态性

__call__方法和可调用对象 定义了__call__方法的对象,称为“可调用对象”,即该对象可以像函数一样被调用方法没有重载 在其他语言中,可以定义多个重名的方法,只要保证方法签名唯一即可,方法签名包含3个部分:方法名,参数数量,参数类型。 python中,方法的参数没有类型(调用时确定参数的类型),参数的数量也可以由可变参数控制,因此,python中没有方法的重载的,定义一个方法即可由多种调用方式,相当于实现了其他语言中的方法重载。 ...

2020-09-25 16:14:40

python的__del__方法和垃圾回收机制

__del__方法(析构函数)和垃圾回收机制 __del__方法称为“析构方法”,用于实现对象被销毁时所需的操作,比如:释放对象占用的资源,例如:打开的文件资源、网络连接等。 python实现自动的垃圾回收机制。当对像没有被引用时(引用计数为0),由垃圾回收器调用__del__方法。 也可以通过del语句删除对象,从而保证调用__del__方法。 系统会自动提供__del__方法,一般不需要自定义析构方法。例子:class Perso...

2020-09-08 11:21:01

python的类属性和类方法以及静态方法的含义

类属性:类属性是从属于“类对象”的属性,也称为“类变量”,由于,类属性从属于类对象,可以被所有实例对象共享。类属性的定义方式:class stu:#类名 类变量名=初始值在类中或者类的外面,可以通过:“类名.类变量名“来读写。类方法:类方法是从属于“类对象”的方法,类方法通过装饰器@classmethod来定义的,格式如下:@classmethoddef 类方法名(cls,[,形参列表]): 函数体要点如下:@classmethod必须位于方法上面一

2020-09-07 22:45:30

Python实例属性和实例方法

实例属性实例属性是从属于实例对象的属性,也称为“实例变量”,使用有如下几个要点:1.实例属性一般在__init__()方法中通过如下代码定义: self.实例属性名 = 初始值2.在本类的其他实例方法中,也是通过self进行访问: self.实例属性名3.创建实例对象后,通过实例对象访问: obj01=类名() #创建对象,调用__init__()初始化属性 obj...

2020-08-24 16:40:59

scrapy项目下多个爬虫如何同时运行?

一般运行scrapy爬虫文件,我们只需要这样输入:scrapy crawl xxx假设我们有两个爬虫文件为:one和two,想同时运行着这两问题。如果我这样:from scrapy.cmdline import executeexecute(['scrapy','crawl','one')execute(['scrapy','crawl','two')这样的运行的效果,是串行执行,只有第一个one执行完以后,第二个two才会执行。。这显然不是我们所需要的。真正同时运行的方法

2020-08-07 14:55:47

Python构造函数__init__()

类是抽象的,也称为“对象模板”,我们需要通过类这个模板,创建类的实例对象,才能使用类定义的功能。Python对象基本包含三个部分:id(identity 识别码),type(对象类型),value(对象的值)现在,更进一步的理解,一个Python对象包含如下部分id(identity 识别码) type(对象类型) value(对象的值) 1.属性(attribute) 2.方法(method)创建对象,需要定义构造函数__init__()方法,构造方法用于执行...

2020-07-24 15:42:40

Python面向对象和面向过程的区别以及设计和执行者的思维

面向对象编程: 面向对象编程的思想主要是针对大型软件设计而来的,面向对象编程使程序的扩展性更强,可读性更好,使得编程可以像搭积木一样简单。 面向对象编程将数据和操作数据相关的方法封装到对象中,组织代码和数据的方式更加接近人的思维,从而大大提高了编程的效率。 Python完全采用了面向对象的思想,是真正面向对象的编程语言,完全支持面向对象的基本功能,例如:继承,多态,封装等。 Python中,一切皆对象,在 Python基础(一)介绍的数据类型、...

2020-07-22 21:21:50

Python的eval()函数

功能:将字符串str当成有效的表达式来求值并返回计算结果语法:eval(source[.globals,locals]]) -->value参数: source:一个Python表达式或函数compile()返回的代码对象 global:可选,必须是dictionary locals:可选,任意映射对象#测试eval()函数eval("print('abcd')") #字符串是可变的,还原Python代码#打印出来>&...

2020-06-07 16:18:21

Python函数lambda表达式和匿名函数

lambda表达式和匿名函数lambda表达式可以用来声明匿名函数。lambda函数是一种简单的、在同一行定义函数的方法,lambda函数实际生成一个函数对象。lambda表达式只允许包含一个表达式,不能包含复杂语句,该表达式的计算结果就是函数的返回值。lambda表达式的基本语法如下:lambda org1,org2,org3...:<表达式>org1/org2/org3/为函数的参数,<表达式>相当于函数体,运算结果是:表达式的运算结果。例子(lambd

2020-06-07 16:01:41

Python函数参数的几种类型

位置参数函数调用时,实参默认按照位置顺序传递,需要个数的和形参匹配,按位置传递 的参数,称为:“位置参数”。例子:def one(a,b,c): print(a,b,c)one(1,2,3)one(1,2) #这里报错,位置参数不匹配返回值:>>>Traceback (most recent call last): 1 2 3 File "D:/B_project/Kong_Ji/git_data/z_Script/gove....

2020-06-07 15:51:11

Python浅拷贝和深拷贝以及内存分析

浅拷贝和深拷贝深入了解参数传递的底层原理,需要理解一下“浅拷贝和深拷贝”,拷贝的内置函数为:copy(浅拷贝)、deepcopy(深拷贝)浅拷贝:不拷贝子对象的内容,只是拷贝子对象的引用。深拷贝:会连子对象的内存也全部拷贝一份,对子对象的修改不会影响源对象例子:import copydef testcopy(): '''测试浅拷贝''' a=[11,22,[33,44]] b=copy.copy(a) print("a",a) pr

2020-06-03 21:21:31

Python函数参数的传递可变对象及不可变对象

参数的传递函数的参数传递本质上就是:从实参到形参的赋值操作。Python中“一切皆对象”,所有的赋值操作皆是“引用赋值”,所以,Python中参数的传递都是“引用传递”,不是“值传递”,具体操作可分为两类:对“可变对象”进行“写操作”,直接作用于原对象本身。 对“不可变对象”进行“写操作”,会产生一个新的“对象空间”,并用新的值填充这块空间(起到其他语言的“值传递”效果,但不是“值传递”)。可变对象有: 字典、列表、集合、自定义的对象等不可变对象有: 数字、字...

2020-06-03 20:31:52

Python局部变量与全局变量效率的测试

局部变量的查询和访问速度比全局变量快,优先考虑,尤其是在循环的时候。在特别强调效率的地方或者循环次数较多的地方,可以通过将全局变量转为局部变量提高运行速度。例子:import math, timedef one(): start_time = time.time() for i in range(10000000): math.sqrt(30) end = time.time() print(end - start_time)def

2020-06-01 20:30:49

Python的变量的作用域(全局变量和局部变量)

变量变量起作用的范围称为变量的作用域,不同的作用域内同名变量之间互不影响。变量分为:全局变量、局部变量。全局变量:在函数和类定义之外声明的变量,作用域为定义的模块,从定义位置开始直到模块结束。 全局变量降低了函数的通用性和可读性,应尽量避免全局变量的使用。 全局变量一般做常量使用。 函数内要改变全局变量的值,使用global声明一下局部变量:在函数体中(包含形式参数)声明的变量 局部变量的引用比全局变量快,优先考虑使用局部变量 如果局部变量和全局变量同名,则在函数内隐藏全局变量,

2020-05-28 21:09:14

Python函数的基本概念以及函数的分类

函数用法和底层分析: 函数是可重用的程序代码块,函数的作用,不仅可以实现代码的复用,更能实现代码的一致性,一致性是指:只要修改函数的代码,则所有调用该函数的地方都能得到体现。 在编写函数时,函数中的代码,只是对代码实现了封装,并增加了函数的调用、传递参数、返回计算结果等内容。函数的基本概念: 1.一个程序有一个个任务组成;函数就是一个任务或者一个功能。 2.函数是代码复用的通用机制。Python函数的分类:...

2020-05-27 21:04:27

Python循环代码优化技巧

循环优化:虽然计算机越来越快,空间也越来越大,我们仍然要在性能问题上“斤斤计较”,编写循环时,遵守下面三个原则可以大大提高运行效率,避免不必要的低效计算:1.尽量减少循环内部不必要的计算2.嵌套循环中,尽量不要减少内层循环的计算,尽可能像外提3.局部变量查询较快,尽量使用局部变量其他优化注意点:1.连接多个字符串,使用join()而不使用 +2.列表进行元素加入或删除,尽量在列表尾部操作...

2020-05-24 20:28:06

Python字典核心底层原理

字典核心底层原理(是很重要的)一.存储键值对过程 字典对象的核心是散列表,散列表是一个稀疏数组(总是有空不元素的数组),数组的每一个单元叫做bucket(或叫桶.表元),每一个bucket有两部分,一个是键对象的引用,一个是值对象的引用, 由于,所有bucket结构和大小一致,可以通过偏移量来读取指定bucket。 将一个键值对放在字典的底层过程: ...

2020-05-14 15:47:56

Python字典基础、以及字典的"增删改查”

字典: 字典是“键值对”的无序可变序列,字典中的每个元素都是一个“键值对”,包含:"键对象"和“值对象”。可以通过"键对象“实现快速获取、删除、更新对应的“值对象”。 列表中我们通过“下标数字”找到对应的对象,字典中通过“键对象”找到对应的“值对象”。“键”是任意的不可变数据,比如整数、浮点数、字符串、元组。但是:列表、字典、集合、这些可变对象,不能作为“键”,并且“键”不可重复。 “值”可以任意数据,并且可重复字典的定义方式: a=...

2020-05-13 16:03:51

Python元组、生成器推导式创建元组

生成器推导式创建元组 从形式上看,生成器推导式和列表推导式类似,只是生成器推导式使用小括号,列表推导式直接生成列表对象,生成器推导式生成的不是列表又不是元组,而是一个生成器对象。 我们可以通过生成器对象,转成列表或者元组,也可以使用生成器对象_next_()方法遍历,或者直接使用迭代器对象来使用,不管什么方式使用,元素访问结束后,如果需要重新访问其中的元素,必须重新创建该生成器对象。例子:生成器的使用:a=(x*2 for x in range(10))print...

2020-05-12 21:22:30

查看更多

勋章 我的勋章
  • 签到新秀
    签到新秀
    累计签到获取,不积跬步,无以至千里,继续坚持!
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
  • 勤写标兵Lv2
    勤写标兵Lv2
    授予每个自然周发布4篇到6篇原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。
  • 原力新人
    原力新人
    在《原力计划【第二季】》打卡挑战活动中,成功参与本活动并发布一篇原创文章的博主,即可获得此勋章。