目录
4.1轻松看对象
4.2继承者们
4.3那些年,错过的对象
4.4意想不到的对象
4.1
4.12类
class bird(object):
feather=True
raproduction="egg"
class 来定义一个类别,包含了所有特征
object是关键词,是“东西”的意思
其中feather和reprodction属于类的属性(attribute)
方法(method)指的是“行为属性”
self是内部引用对象,self必须为第一个参数
4.13对象
class bird(object):
def chirp(self,sound):
def set_color(self,color):
self.color=color
class定义的是共同的类属性,需要描述个体的差异。需要用到self
self必须在方法内部操作属性,不可以在类下方直接赋值.除了操作对象属性,还可以在一个方法内部调用同一类的其他方法。
初始化对象属性:_init_()
每当对象建立时,_init_()会被自动调用。
4.2
4.21子类
子类继承父类的基本属性,并且可以增加父类不存在的属性,从而增加子类的功能。
4.22属性覆盖
1、 可继承,也可替换
2、通过super调用父类中被覆盖的属性。既有父类又有子类。
4.3
4.31列表对象
type():返回参数的数据类型。
help():查询函数的说明文档。
dir():来查询一个类或者对象的所有属性。
pass:是Python的一个特殊关键字,用于说明上面描述“什么都不做”,
list“隐藏功能”:
1、追加 (append)
>>> names = ['a','b','c','d']
>>> names.append('e')
>>> names
['a', 'b', 'c', 'd', 'e']
2、统计(count)
>>> names = ['a','b','c','d','a']
>>> names.count('a') #统计'a'元素的个数
[2]
3、获取下标值 (index)
>>> names = ['a','b','c','d']
>>> names.index('a')
【0】
4、排序(sort)
>>> names = [4,2,3,1]
>>> names.sort()
>>> names
[1, 2, 3, 4]
5、翻转(reverse)
>>> names = ['a','b','c','d']
>>> names.reverse()
>>> names
['d', 'c', 'b', 'a'] #将整个列表翻转过来
ps:想要查看列表中用到的方法,可以用dir()进行查看
>>> names = [ ]
>>>dir(names)
4.32元组与字符串对象
元组 Tuple
T.index('c') #返回索引
T.count('b') #返回出现次数
字符串 str
1、字符串的测试与查找
str. startswith (prefix[, start[, end]])
str. endswith(suffix[, start[, end]])
endswith()检查字符串str是否以suffix结尾,返回布尔值的True和False。suffix可 以是一一个元组(tuple)。可以指定起始start和结尾end的搜索边界。
同理 startswith()用来判断字符串str是否是以prefix开头。
str. count (sub[, start[, end]])
返回字符串str中子串sub出现的次数,可以指定从哪里开始计算(start)以及计算到哪里结束(end), 索引从0开始计算,不包括end边界。
str. find(sub[, start[, end]])
str. rfind(sub[, start[, end]])
str. index(sub[, start[, end]])
str. rindex (sub[, start[, end]])
find()搜索 字符串S中是否包含子串sub,如果包含,则返回sub的索引位置,否则返回"-1"。可以指定起始start和结束end的搜索位置。
index()和find()一样,唯一不同点在于当找不到子串时,抛出ValueError错误。
rfind()则是返回搜索到的最右边子串的位置,如果只搜索到一个或没有搜索到子串,则和find()是等价的。同理rindex()。
字符串的替换
str. replace(old, new[, count])
将字符串中的子串old替换为new字符串,如果给定count, 则表示只替换前count个old子串。 如果S中搜索不到子串old,则无法替换,直接返回字符串S(不创建新字符串对象)。
str. expandtabs (N)
将字符串S中的\t替换为一定数量的空格。默认N=8。注意,expandtabs(8)不是将\t直接替换为8个空格。例如’xyz\tab’ expandtabs()会将\t替换为5个空格,因为"xyz" 占用了3个字符位。所以,在替换"\t"为空格时,会减掉"\t"前面的字符数量。如果"'t"的前面正好没有字符, 则直接将"\t"替换为N个空格。另外,它不会替换换行符(\n或\r)。
str. translate (table)
static str. maketrans(x[, y[, z]])
str.maketrans()生成一一个字符一一 映射的table,然后使用translate(table)对字符串S中的每个字符进行映射。
translate()实现的功能和Linux中的tr命令是类似的。
注意,maketrans(x[, y[, z1])中的x和y都是字符串,且长度必须相等。
如果maketrans(x[, y[, z])给定了第三个参数z,则这个参数字符串中的每个字符都会被映射为None。
详细字符串对象了解可以参考网站:
https://blog.csdn.net/syd_de_blog/article/details/88775245
4.33词典对象
keys(): 循环遍历每个元素的键
values():遍历每个元素
clear():清空词典
4.4
4.41循环对象
内置函数iter():把一个列表转变循坏对象,循坏时调用_next_()方法。直到stopiteration出现。
生成器:自定义循环对象。生成器的编写方法和函数定义类似,只是在return的地方改为yield。
生成器中可以有多个yield。当生成器遇到一个yield时,会暂停运行生成器,返回yield后面的值。当再次调用生成器的时候,会从刚才暂停的地方继续运行,直到下一个yield。生成器自身又构成一个循环对象,每次循环使用一个yield返回的值。
4.42函数对象
_call_():任何一个有_call_()特殊方法的对象都被当做函数
4.43模块对象
模块也是对象,引入模块time
import time
from time import sleep
sleep(10)
print(“wake up”)
time中的sleep()中参数说明了中止时间
import time
from time import sleep 这两部分可以直接合并为form time import*
对象属性方法调用:
import time
time.sleep(10)
模块换名字:
import time as t
t.sleep(10)
将功能相似的模块放在同一个文件夹中,构成一个模块包。
该文件夹中必须包含一个__init__.py的文件,提醒Python,该文件夹为一个模块包。
__init__.py可以是一个空文件。
每个模块对象都有一个__name__属性,用来记录模块的名字。