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()
# 答案: