class foo:
def __new__(cls, *args, **kwargs):
print("execute new")
print("*args is ", args)
return super().__new__(cls)
def __init__(self, value):
print('ececute init')
print("value is ", value)
self.value = value
class goo(foo):
def __new__(cls, *args, **kwargs):
print("*args is ", args)
return super().__new__(cls, *args, **kwargs)
def __init__(self, a, b):
super().__init__(a)
self.a = a
self.b = b
g = goo(1,2)
# out is:
# /usr/local/bin/python3.6 /users/zrb/pycharmprojects/mrhu/studing/singleton.py
# *args is (1, 2)
# execute new
# *args is (1, 2)
# ececute init
# value is 1
引數只能傳必要的,多乙個少乙個都不行。
new方法的第乙個引數一般都是cls, init方法的引數一般都是self
為什麼說一般呢
因為還有元類
元類的new方法的第乙個引數是mtc, init方法的第乙個引數是cls
關於 retainCount 的疑問
我在 main.m 裡寫了三個測試例子,就是不明白為什麼輸出的都是 1 別人幫忙測試了下,輸出的是額外的超大的值 nsstring str1 welcome nslog d str1 retaincount nsstring str2 nsstring stringwithstring you ns...
關於scanf的疑問
scanf函式是從標準輸入流 stdin 讀取資料,按照格式說明引數,將資料寫入引數位址所在空間,標準輸入流預設的是鍵盤輸入流,但是,由於作業系統的緩衝區管理機制,從鍵盤上輸入的資料不是直接被scanf函式讀取的,而是暫存在記憶體緩衝區,只有遇到回車鍵的時候,scanf函式才會開始工作,並且,最後輸...
關於sort 的疑問?
對於不同型別的資料從小到大排序可以直接用sort 函式排,但是如果是從大到小排序,就得寫乙個比較函式了,怎麼辦呢?我的第一想法就是利用函式模板寫乙個cmp 函式,如下 所示,但是這串 是通不過編譯的,include include using namespace std template bool ...