Python高级编程(4):什么是魔法函数?
什么是魔法函数?魔法函数它是一个网络术语,实际上是属于Python数据模型的概念。你只要记住魔法函数的作用就是增强你自定义类的功能。一般都会满足两个条件:1.双下划线开头,双下划线结尾:比如__init__, __str__,__len__等 ;2.定制类的特性, 看下面的例子你就知道了:
1234567891011121314# 遍历该公司的员工class Company(object): def __init__(self, employee_list): self.employee = employee_listcompany = Company(["tom", "bob", "jane"])for employee in company.employee: print(employee)# 输出结果:tombobjane
现在我们来使用魔法函数,来增强我们这个Company类的功能(注意魔法函数不属于object,也不属于Company,只是用来增强某种功能而添加的)。这里我们使用魔法函数来让 ...
Python高级编程(3):python中常见的内置类型
前面说过python中的对象具有3个特征:身份,类型和值。下面我们就来谈一谈Python中常见的内置类型。首先是None,这个全局唯一的一个类型,在内存中只有一个:
1234>>> a =None>>> b =None>>> id(a)==id(b)True
其次是数值类型:int,float,complex(复数),bool。
然后就是迭代类型,关于迭代类型我们将在后面迭代器的部分进行详细介绍。
接着是序列类型:list,(bytes、bytearray、memoryview(二进制序列)),range,tuple,str,array。
然后就是映射(dict)和集合,集合又包括:set和frozenset。
接着就是上下文管理类型(with),以及其他类型。其他类型包括很多,这里就不细讲,最后附上一张图,以供参考学习。
Python高级编程(2):type、object和class之间的关系
关于这部分,很多人特别是小白几乎就没弄明白过,只知道所有的类都继承我们的基类object,实际上这样说是不对的。所以今天我们就来仔细捋一捋这三者之间的关系。我们通过边用代码边说逻辑的方式进行说明。
实例化关系type两种用法:第一生成一个类,第二返回某个对象的类型。我们这里使用它的第二种用法。首先我们先来测试一下整型:
1234567891011>>> a =1>>> type(a)<class 'int'>>>> type(int)<class 'type'>>>> type(type)<class 'type'># 也就是:type-->type-->int-->1
接下来我们测试一下字符串和列表用来说明Python的其他内置类型也是具有相同的功能:
123456789101112>>> a ="envse" # 字符串>>> type(a) ...
Python高级编程(1):如何理解Python中的一切皆对象?
如何理解Python中一切皆对象这一说法呢?其实不光是Python,很多语言都号称是一切皆对象,这里就拿Java来说吧。其实Java的一切皆对象是伪装的,比如int(Java八种基本数据类型之一)在持久化的时候,就需要包装成Integer类对象。但是在python里面,一切皆对象却是真正做到了这一点,常见的字符串、数字、列表、元组、字典、函数、方法、类、模块等等都是对象,甚至包括你自定义的代码。前面的那些你可能很容易理解,但是这个函数和类也是对象可能就不是那么好理解了,下面我们就来谈谈它们两个的具体使用。
你知道的,对象一般都具有四个特点,这也是面向对象编程的一个主要体现,然后分别用代码来实现这些功能。
可以复制给一个变量;
可以添加到集合中 ;
可以作为参数传递给函数;
可以当做函数的返回值。
可以复制给一个变量1234567891011121314def ask(name="lichee"): # 函数赋值给一个变量 print(name)a = aska()class Person: # 类赋值给一个变量 def __init__(sel ...