[Python]小甲鱼Python视频第040课(类和对象:一些相关的BIF )课后题及参考解答

# -*- coding: utf-8 -*-
"""
Created on Tue Mar 12 23:36:51 2019

@author: fengs
"""

"""

0. 如何判断一个类是否为另一个类的子类?
    issubclass(A,B)
    A是B的子类就返回True

1. 如何判断对象 a 是否为 类 A 的实例对象?
    isinstance(a,A)

2. 如何优雅地避免访问对象不存在的属性(不产生异常)?
    a. hasattr(object,name)
    b. getattr(ovject,‘变量名‘) 没获取到会返回None或默认值而不是抛出异常 

3. Python 的一些 BIF 很奇怪,但却十分有用。请问 property() 函数的作用是什么?

    绑定一个类的实例对象在进行获取操作、设置操作和删除操作时对应的函数

4. 请补充以下代码,使程序可以正常运行:
class C:
    def __init__(self, size=10):
        self.size = size

    def getXSize(self):
        return self.size

    def setXSize(self, value):
        self.size = value

    def delXSize(self):
        del self.size

        # 此处应该补充一句代码,程序才能正常运行

>>> c.x
10
>>> c.x = 12
>>> c.x
12

x = property(getXSize,setXSize,delXSize)

"""

import time

"""
5. 通过自学【扩展阅读】Python 函数修饰符(装饰器)的使用,使用修饰符修改以下代码。
class CodeA:
    def foo():
        print("调用静态方法 foo()")

        # 将 foo() 方法设置为静态方法
        foo = staticmethod(foo)

class CodeB:
    def foo(cls):
        print("调用类方法 foo()")

        # 将 foo() 方法设置为类方法
        foo = classmethod(foo)

"""
class CodeA:
    @staticmethod
    def foo():
        print("调用静态方法 foo()")
        # 将 foo() 方法设置为静态方法
        #foo = staticmethod(foo)

class CodeB:
    @classmethod
    def foo(cls):
        print("调用类方法 foo()")

        # 将 foo() 方法设置为类方法
        #foo = classmethod(foo)        

CodeA().foo()
CodeB().foo()

"""
6. 你真的理解了修饰符的用法吗?那请你写出以下代码没有用上修饰符的等同形式:
@something
def f():
    print("I love FishC.com!")

f = something(f)
返回的是函数的闭包
"""
def something1(func):
    def call():
        print(‘---start----‘)
        start = time.perf_counter()
        func()
        print(‘-------end------‘)
        end = time.perf_counter()
        print(‘used: %s ‘ % (end - start))
    return call
@something1
def f():
    print("I love FishC.com!")

f()

"""
7. 通过自学【扩展阅读】property 的详细使用方法,将第 4 题的代码修改为“使用属性修饰符创建描述符”的方式实现。
"""

class C:
    def __init__(self, size=10):
        self._size = size

    @property
    def size(self):
        print(‘getter‘)
        return self._size

    @size.setter
    def size(self, value):
        print(‘setter‘)
        self._size = value
    @size.deleter
    def size(self):
        print(‘deleter‘)
        del self._size

        # 此处应该补充一句代码,程序才能正常运行
c = C()
print(‘---------------start‘)
print(c.size)
c.size = 12
print(c.size)
del(c.size)
print(‘---------------end‘)

  

原文地址:https://www.cnblogs.com/alimy/p/10548916.html

时间: 2024-07-31 07:53:26

[Python]小甲鱼Python视频第040课(类和对象:一些相关的BIF )课后题及参考解答的相关文章

[Python]小甲鱼Python视频第030课(文件系统:介绍一个高大上的东西)课后题及参考解答

# -*- coding: utf-8 -*- """ Created on Fri Mar 8 15:49:32 2019 @author: Administrator """ """ 动动手: 0. 编写一个程序,统计当前目录下每个文件类型的文件数,程序实现如图: 1. 编写一个程序,计算当前文件夹下所有文件的大小,程序实现如图 2. 编写一个程序,用户输入文件名以及开始搜索的路径,搜索该文件是否存在.如遇到文件

[Python]小甲鱼Python视频第2课(第一个游戏)课后题及参考解答

# -*- coding: utf-8 -*- """ Created on Mon Mar 4 11:19:54 2019 @author: Administrator """ """ 测试题: 0. 什么是BIF? 内置函数,已经写好的API,直接按规矩调用即可,不需要自己写的. 1. 用课堂上小甲鱼教的方法数一数 Python3 提供了多少个 BIF? 在Python命令行下,输入 bif_list_temp

[Python]小甲鱼Python视频第006课(Pyhon之常用操作符)课后题及参考解答

# -*- coding: utf-8 -*- """ Created on Mon Mar 4 23:18:54 2019 @author: fengs """ """ 测试题: 0. Python 的 floor 除法现在使用 “//” 实现,那 3.0 // 2.0 您目测会显示什么内容呢? 1.0 1. a < b < c 事实上是等于? a<b and 2. 不使用 IDLE,你可以轻松说

[Python]小甲鱼Python视频第010课(列表:一个打了激素的数组)课后题及参考解答

# -*- coding: utf-8 -*- """ Created on Tue Mar 5 00:11:43 2019 @author: fengs """ """ 测试题: 0. 列表都可以存放一些什么东西? 各种基础数据类型,字符串,列表等等 1. 向列表增加元素有哪些方法? append insert extend 2. append() 方法和 extend() 方法都是向列表的末尾增加元素,请问他们有

[Python]小甲鱼Python视频第011课(列表:一个打了激素的数组2)课后题及参考解答

# -*- coding: utf-8 -*- """ Created on Tue Mar 5 22:28:59 2019 @author: fengs """ """ 测试题: 0. 下边的列表分片操作会打印什么内容? >>> list1 = [1, 3, 2, 9, 7, 8] >>> list1[2:5] 打印: [2,9,7] 1. 请问 list1[0] 和 list1

[Python]小甲鱼Python视频第012课(列表:一个打了激素的数组3)课后题及参考解答

# -*- coding: utf-8 -*- """ Created on Tue Mar 5 22:43:25 2019 @author: fengs """ """ 测试题: 0. 注意,这道题跟上节课的那道题有点儿不同,回答完请上机实验或参考答案. >>> old = [1, 2, 3, 4, 5] >>> new = old >>> old = [6]

[Python]小甲鱼Python视频第013课(元组:戴上了枷锁的列表)课后题及参考解答

# -*- coding: utf-8 -*- """ Created on Tue Mar 5 23:05:40 2019 @author: fengs """ """ 测试题: 0. 请用一句话描述什么是列表?再用一句话描述什么是元组? 列表:有序且可变的数据集合 元组:有序且不可变的数据集合 1. 什么情况下你需要使用元组而不是列表? 数据已经确定无需修改 2. 当元组和列表掉下水,你会救谁? ...... 3

[Python]小甲鱼Python视频第038课(类和对象:继承 )课后题及参考解答

# -*- coding: utf-8 -*- """ Created on Tue Mar 12 22:35:13 2019 @author: fengs """ """ 测试题: 0. 继承机制给程序猿带来最明显的好处是? 提高代码复用,在不修改其他内容的情况下,只修改需要修改的方法或属性实现 1.如果按以下方式重写魔法方法 __init__,结果会怎样? class MyClass: def __init__(

[Python]小甲鱼Python视频第009课(了不起的分支和循环3)课后题及参考解答

# -*- coding: utf-8 -*- """ Created on Mon Mar 4 23:47:51 2019 @author: fengs """ """ 测试题: 0. 下面的循环会打印多少次"I Love FishC"? for i in range(0, 10, 2): print('I Love FishC') 0 2 4 6 8 5次 1.下面的循环会打印多少次"