美文网首页
第四章 朝思暮想是对象

第四章 朝思暮想是对象

作者: Echo_f0a1 | 来源:发表于2019-11-10 22:33 被阅读0次

    4.1 轻松看对象

    除了面向过程的编程范式,Python还支持面向对象的编程范式。

    2.类

    把相近的东西归为一类,而且给这个类起一个名字。

    需要用到:class函数

    用法:class 类名(对象类别)

               statement

    区分属性:①数据性:e.g. feature=True

                      ②行为:e.g. def (行为名)(self,参数)

                                    statement

    3.对象

    定义:对象是类的实例:summer=Bird()

    对属性的引用:对象.属性:summer.chirp("jijiji")

    对对象个性的修改:

    ①通过行为和self:def set_color(self,color)

                                         self.color=color(给定的参数)

    ②特殊方法:_init_()、_add_().....(在方法名前后加两个下划线)

    在引入对象的同时定义参数

    self:可以在一个方法内部调用同一类的其他方法

    4.2 继承者们

    1.子类

    ①子类:拥有父类的所有属性,同时可定义子类的特有属性,还可替换。

    ②继承:子类拥有父类的所有属性。

    2.属性覆盖

    使用同名属性名,父类的属性会被子类覆盖。

    super():一个内置类,能产生指代父类的对象。通过super,我们在子类的同名方法中调用了父类的方法。

    4.3 那些年,错过的对象

    查找类的名字:type()

    查询类的属性:dir()、help()

    ①列表对象:

    pass:特殊关键字,用于说明,在该语法结构中“什么都不做”,保持结构完整性

    我们看到类还有许多“隐藏技能”。比如下面一些list的方法,可以返回列表的信息:

    >>>a = [1, 2, 3, 5, 9.0, "Good", -1, True, False, "Bye"]

    >>>a.count(5) # 计数,看总共有多少个元素5

    >>>a.index(3) # 查询元素3第一次出现时的下标

    >>>a.append(6) # 在列表的最后增添一个新元素6

    >>>a.sort() # 排序

    >>>a.reverse() # 颠倒次序

    >>>a.pop() # 去除最后一个元素,并将该元素返回。

    >>>a.remove(2) # 去除第一次出现的元素2

    >>>a.insert(0,9) # 在下标为0的位置插入9

    >>>a.clear() # 清空列表

    ②元组与字符串对象

    >>>a = (1, 3, 5)

    >>>a.count(5) # 计数,看总共有多少个元素5

    >>>a.index(3) # 查询元素3第一次出现时的下标

    >>>a="abc"

    >>>a.index("c")

    >>>str = "Hello World!"

    >>>sub = "World"

    >>>str.count(sub) # 返回:sub在str中出现的次数

    >>>str.find(sub) # 返回:从左开始,查找sub在str中第一次出现的位置。 #如果str中不包含sub,返回 -1

    >>>str.index(sub) # 返回:从左开始,查找sub在str中第一次出现的位置。 #如果str中不包含sub,举出错误

    >>>str.rfind(sub) # 返回:从右开始,查找sub在str中第一次出现的位置 #如果str中不包含sub,返回 -1

    >>>str.rindex(sub) # 返回:从右开始,查找sub在str中第一次出现的位置 # 如果str中不包含sub,举出错误

    >>>str.isalnum() # 返回:True,如果所有的字符都是字母或数字

    >>>str.isalpha() # 返回:True,如果所有的字符都是字母

    >>>str.isdigit() # 返回:True,如果所有的字符都是数字

    >>>str.istitle() # 返回:True,如果所有的词的首字母都是大写

    >>>str.isspace() # 返回:True,如果所有的字符都是空格

    >>>str.islower() # 返回:True,如果所有的字符都是小写字母

    >>>str.isupper() # 返回:True,如果所有的字符都是大写字母

    >>>str.split([sep, [max]]) # 返回:从左开始,以空格为分隔符(separator),# 将str分 割为多个子字符串,总共分割max次。# 将所得的子字符串放在一个表中返回。可以以 # str.split(",")的方式使用其他分隔符

    >>>str.rsplit([sep, [max]]) # 返回:从右开始,以空格为分隔符(separator),# 将str分 割为多个子字符串,总共分割max次。# 将所得的子字符串放在一个表中返回。可以以 # str.rsplit(",")的方式使用其他分隔符

     >>>str.join(s) # 返回:将s中的元素,以str为分隔符, # 合并成为一个字符串。

    >>>str.strip([sub]) # 返回:去掉字符串开头和结尾的空格。 # 也可以提供参数sub,去掉位于字符串开头和结尾的sub

    >>>str.replace(sub, new_sub) # 返回:用一个新的字符串new_sub替换str中 # 的sub

    >>>str.capitalize() # 返回:将str第一个字母大写

    >>>str.lower() # 返回:将str全部字母改为小写

    >>>str.upper() # 返回:将str全部字母改为大写

    >>>str.swapcase() # 返回:将str大写字母改为小写,小写字母改为大写

    >>>str.title() # 返回:将str的每个词(以空格分隔)的首字母# 大写

    >>>str.center(width) # 返回:长度为width的字符串,将原字符串放入# 该字符串中 心,其他空余位置为空格。

    >>>str.ljust(width) # 返回:长度为width的字符串,将原字符串左对# 齐放入该字符串,其 他空余位置为空格。

    >>>str.rjust(width) # 返回:长度为width的字符串,将原字符串右对齐放入# 该字符串,其 他空余位置为空格。

    ③词典对象

    for k in example_dict.keys():

    print(example_dict[k])

    for v in example_dict.values():

              print(v)

    for k,v in example_dict.items():

              print(k, v)

    用clear()方法,清空整个词典:

    example_dict.clear() # 清空example_dict,example_dict变为{}

    4.4 意想不到的对象

    ①循环对象:包含有一个_next_()方法,这个方法的目的是生成循环的下一个结果。在生成过循环的所有结果之后,该方法将抛出StopIteration异常。循环接收到这个异常,就会知道循环已经结束,将停止调用__next__()。

    手动循环例子:

    >>>example_iter = iter([1, 2])

     >>>example_iter.__next__() # 显示1

    >>>example_iter.__next__() # 显示2

    >>>example_iter.__next__() # 出现StopIteration异常。

    我们可以把 循环对象包裹在for中自动进行循环:

    for itemin iter([1, 2]):

     print(item)

    相对于序列,循环对象的好处在于:不用在循环还没开始的时候,就生成要使用的元素。所有要使用的元素可以在循环过程中逐渐生成。这样,不仅节省了空间,提高了效率,还会使编程更加灵活。

    生成器:自定义循环对象。

    ②函数对象

    任何一个有_call_()特殊方法的对象:

    class SampleMore(object):

    def __call__(self, a):

    return a + 5

    add_five = SampleMore() # 生成函数对象

    print(add_five(2)) #像一个函数一样调用函数对象,结果为7。

    ③模块对象

    Python中的模块对应一个.py文件

    语法:import xxx、from xxx import xxx

    引入模块的所有属性:from xxx import *

    也可以用对象.属性的方式调用。

    ④异常对象

    try等捕捉到的程序中出现的异常。

    except… as…:用新的变量代表捕获到的类型对象。

    相关文章

      网友评论

          本文标题:第四章 朝思暮想是对象

          本文链接:https://www.haomeiwen.com/subject/ehnabctx.html