尚学python课程---15、python进阶语法
一、总结
一句话总结:
python使用东西要引入库,比如 json
1、python如何创建类?
class ClassName: :以冒号结尾
使用 class 语句来创建一个新类,class 之后为类的名称并以冒号结尾:
class ClassName:
'类的帮助信息' #类文档字符串
class_suite #类体
类的帮助信息可以通过ClassName.__doc__查看。
class_suite 由类成员,方法,数据属性组成。
2、python类实例要点?
|||-begin
#!/usr/bin/python
# -*- coding: UTF-8 -*-
class Employee:
'所有员工的基类'
empCount = 0
def __init__(self, name, salary):
self.name = name
self.salary = salary
Employee.empCount += 1
def displayCount(self):
print "Total Employee %d" % Employee.empCount
def displayEmployee(self):
print "Name : ", self.name, ", Salary: ", self.salary
|||-end
类实例共享的变量:empCount 变量是一个类变量,它的值将在这个类的所有实例之间共享。你可以在内部类或外部类使用 Employee.empCount 访问。
构造函数__init__():第一种方法__init__()方法是一种特殊的方法,被称为类的构造函数或初始化方法,当创建了这个类的实例时就会调用该方法
self 代表类的实例:self 在定义类的方法时是必须有的,虽然在调用时不必传入相应的参数。
3、python中self代表的是类还是实例?
self代表类的实例,而非类:
self.__class__ 则指向类:print(self.__class__)
类的方法与普通的函数只有一个特别的区别——它们必须有一个额外的第一个参数名称, 按照惯例它的名称是 self。
class Test:
def prt(self):
print(self)
print(self.__class__)
t = Test()
t.prt()
以上实例执行结果为:
<__main__.Test instance at 0x10d066878>
__main__.Test
从执行结果可以很明显的看出,self 代表的是类的实例,代表当前对象的地址,而 self.__class__ 则指向类。
4、python中访问类的属性用什么?
点号.:emp1.displayEmployee()
5、python中如何创建类的实例?
注意不是new:类的实例化类似函数调用方式:emp1 = Employee("Zara", 2000)
实例化类其他编程语言中一般用关键字 new,但是在 Python 中并没有这个关键字,类的实例化类似函数调用方式。
以下使用类的名称 Employee 来实例化,并通过 __init__ 方法接收参数。
"创建 Employee 类的第一个对象"
emp1 = Employee("Zara", 2000)
"创建 Employee 类的第二个对象"
emp2 = Employee("Manni", 5000)
6、python中如何继承?
小括号接父类:class SubClassName (ParentClass1[, ParentClass2, ...])::class Child(Parent): # 定义子类
class A: # 定义类 A
.....
class B: # 定义类 B
.....
class C(A, B): # 继承类 A 和 B
.....
7、python中正则匹配主要函数?
re.match函数:【起始位置匹配】:re.match 尝试从字符串的起始位置匹配一个模式,如果不是起始位置匹配成功的话,match()就返回none。
re.search方法:【扫描整个字符串】:re.search 扫描整个字符串并返回第一个成功的匹配。
8、python中正则匹配主要函数中re.match与re.search的区别是什么?
re.match只匹配字符串的开始,而re.search匹配整个字符串
re.match只匹配字符串的开始,如果字符串开始不符合正则表达式,则匹配失败,函数返回None;而re.search匹配整个字符串,直到找到一个匹配。
实例
#!/usr/bin/python
import re
line = "Cats are smarter than dogs";
matchObj = re.match( r'dogs', line, re.M|re.I)
if matchObj:
print "match --> matchObj.group() : ", matchObj.group()
else:
print "No match!!"
matchObj = re.search( r'dogs', line, re.M|re.I)
if matchObj:
print "search --> matchObj.group() : ", matchObj.group()
else:
print "No match!!"
以上实例运行结果如下:
No match!!
search --> matchObj.group() : dogs
9、python中正则匹配函数re.match(pattern, string, flags=0)的三个参数分别是什么?
pattern 匹配的正则表达式
string 要匹配的字符串。
flags 标志位,用于控制正则表达式的匹配方式,如:是否区分大小写,多行匹配等等。
10、python中正则匹配 正则表达式修饰符(可选标志)有哪些?
re.I 使匹配对大小写不敏感
re.M 多行匹配,影响 ^ 和 $
OR(|) :多个标志可以通过按位 OR(|) 它们来指定:如 re.I | re.M 被设置成 I 和 M 标志
正则表达式可以包含一些可选标志修饰符来控制匹配的模式。修饰符被指定为一个可选的标志。多个标志可以通过按位 OR(|) 它们来指定。如 re.I | re.M 被设置成 I 和 M 标志:
修饰符 描述
re.I 使匹配对大小写不敏感
re.L 做本地化识别(locale-aware)匹配
re.M 多行匹配,影响 ^ 和 $
re.S 使 . 匹配包括换行在内的所有字符
re.U 根据Unicode字符集解析字符。这个标志影响 \w, \W, \b, \B.
re.X 该标志通过给予你更灵活的格式以便你将正则表达式写得更易于理解。
11、python中 json 对象转换函数有哪些?
json.dumps:json.dumps 用于将 Python 对象编码成 JSON 字符串:json = json.dumps(data)
json.loads:json.loads 用于解码 JSON 数据。该函数返回 Python 字段的数据类型。:text = json.loads(jsonData)
12、python中 使用 json 转换的函数需要注意什么?
引入库:使用 JSON 函数需要导入 json 库:import json。