02-05 21—25


21、類的加載順序(類中有繼承有構造有靜態)?

1、 類對象 
2、 實例對象 
3、 self變量名稱問題 
4、 類屬性、實例變量、局部變量 
5、 類方法 
6、 實例方法 
7、 類方法與實例方法相互調用 
8、 靜態方法 
9、 繼承時三類方法的影響 

22、參考下面代碼片段

class Context:
    pass

with Context as ctx:
    ctx.do_something()
    
# 請在 Context 類下添加代碼完成該類的實現 

# 答案:
class Context(object):
    def __enter__(self):
        pass

    def __exit__(self, exc_type, exc_val, exc_tb):
        if all([exc_type, exc_val, exc_tb]):
            print 'handler except'
            print 'exception {}'.format(exc_val)
        return True

def main():
    with tornado.stack_context.StackContext(Contextor):
        async_task()

23、以下代碼輸出是什么?請給出答案並解釋。



class Parent:
    x = 1

class Child1(Parent):
    pass

class Child2(Parent):
    pass
print(Parent.x, Child1.x, Child2.x)
Child1.x = 2
print(Parent.x, Child1.x, Child2.x)
Child1.x = 3
print(Parent.x, Child1.x, Child2.x)

# 答案
'''
1 1 1
1 2 1
1 3 1
'''

24、函數del_node(self,data)的功能:在根節點指針為root的二叉樹(又稱二叉 排序樹)上排除數值為 K 的節點,若刪除成功,返回 0,否則返回-1, 概述節點的 定義類型為

class Node(object):
    def __init__(self, data):
        self.data = data  # 節點的數值 
        self.left_child = Node  # 指向左右子樹的指針 
        self.right_child = Node
        
    def set_data(self, data):
        self.data = data

# 答案: 

25、請給出下面代碼片段的輸出,請簡述上面代碼需要改進的地方?

class Singleton:
    _instance = None
    def __new__(cls, *args, **kwargs):
        print("New")
        if cls._instance is None:
            print("Create")
            cls._instance = super().__new__(cls,*args, **kwargs)
        return cls._instance
    def __init__(self):
        print("Initalize")
        self.prop = None

s1 = Singleton()
s2 = Singleton()

# 答案:


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM