Python 那些难懂的概念要不要Pick
Python 起源于圣诞节,像我们丧丧的日常都想着如何如何玩,然而科技大佬的世界就是玩着玩着就改变了世界。
万能搜索你值得Pick
如果要评选 Pycharm 中最实用的快捷键,非 Double Shift 莫属,连续按两下 Shitf 键可以搜索文件名、类名、方法名,还可以搜索目录名,搜索目录的技巧是在在关键字前面加斜杠/。
如果你要全局项目范围内搜索文件里面的关键字,那么就需要使用 Ctrl + Shfit + F,或者 Ctrl + Shfit + R全局替换。
当 Python 解释器执行到关键字 class这个指令的时候,在内部就会创建一个名为 “Person” 的类,这个类也是个对象,我们称之为类对象(注意区别实例对象),它一样有ID标识、有类型、有值。例如:
id(Person)
26564024type(Person)
<class ‘type’>Person
<class ‘main.Person’>
我们注意到这个 Person 这个类对象的类型叫 “type”,也就是说 Person 类是由 type 创建出来的,现在你要记住,p1,p2 是实例对象,而 Person 是类对象。另外,这个 type 是什么鬼?
我们来回顾一下,实例对象 p1 的类型是类对象 Person,Person 的类型 type
nums = [1,2,3]
type(nums)
<class ‘list’>type(list)
<class ‘type’>
nums 的类型是 list,list 的类型也是 type,字典类(dict)的类型也是 type,所有类的类型都是 type,也就是说所有的类都是由type 创建的。这个 type 就是元类(metaclass),元类是用于创建类的类,道生一,一生二,三生万物,元类就是 Python 中的造物主。(元类自己也是对象)
现在我们都知道类(对象)可以使用 class 关键字创建,我们还知道类(对象)的类型是 type,既然知道了它的类型是 type,那么肯定可以通过 type(元类)来创建。
用元类创建类
前面讲到过,type 有一个作用是用于检查对象的类型,其实它还有另外一个作用就是作为元类动态地创建类(对象)。
Person = type(“Person”, (), {“live”:True})
Person
<class ‘main.Person’>
对象值
对象的第二个属性是值,值很好理解,比如 i 的值是 10,s 的值是 abc,nums 的值就是 1,2,3。
类型
对象还有一个很重要的属性就是类型,任何对象都有属于自己的类型,对象就是由它的类型构造出来的。
比如上面 i 的类型是 int 类型,s 类型是字符串类型,nums 的类型是列表类型,dicts 的类型是字典类型,它们都是由对应的类型构建出来的。
通过 type() 可以查看对象的类型。
.字符串前缀
b 字节前缀 b’\xe4’
unicode编码。u ‘小明’,python2中常见,显式告诉程序后面的中文字符串
要用unicode编码,
Python3默认unicode编码,所以不需要写。
示例\u0x3e\u0x12,中间产物,被utf-8存储后才会形成字节。
r 前缀,raw 原始字符串
示例:print(r’jony j\n 真酷’) →jony j\n 真酷
场景:爬虫数据分析要求原始信息。
Python 本身就是很酷的,我们在这个光怪陆离的世界中,就慢慢的用python去改变一些是与非吧