一切皆物件
一切都有型別
「class」和「type」之間本質上並無不同
類也是物件
它們的型別是 type
以前,術語 type 用於內建型別,而術語 class 用於使用者定義的類,但自 pythoon 2.2 以來「class」和「type」本質上並無不同。
對於舊風格(old-style)類的型別是 types.classtype
類的類是……
它的元類……
就像物件是類的例項一樣,類是它的元類的例項。
呼叫元類可以建立類。
確切來說,python 中的其它物件也是如此。
因此當你建立乙個類時……
直譯器會呼叫元類來生成它……
a = 10 # a是整型物件
print(type(a)) # class person:
pass
p = person()
print(type(p))
#print(type(int)) # print(type(person))
## class student:
# '''
# 這個是乙個學生類
# '''
# type1 = '學生'
## def __init__(self, name):
# self.name = name##
# s = student('tom')
# print(student.__dict__)
student = type('student', (object,), )
print(type(student))
s = student()
print(s)
print(type(object))
class listmetaclass(type):
def __new__(cls, name, bases, attrs):
print(name)
print(bases)
print(attrs)
attrs['b'] = 'world'
if attrs.get('test'):
attrs.pop('test')
return type.__new__(cls, name, bases, attrs)
class mylist(object, metaclass=listmetaclass):
a = 'hello'
def test(self):
print('---->test')
l = mylist()
print(l)
print(l.a)
# print(l.b)
l.test()
''' type() ----> 用來構建所有型別的類
用法:1.type(物件) ----》 返回的是物件的型別
2.type(name,bases,attrs) ----> name 類名 bases: tuple儲存的是所有的父類 attrs:{} 字典 類中的所有的屬性
所有的類底層都是經過type構建出來的。
自定義元類:
class ***(type):
def __new__(cls,name,bases,attrs):
do something
....
return type.__new__(cls,name,bases,attrs)
class student(父類,metaclass=***):
pass
元類它只做了三件事:
攔截類的建立
修改類返回修改之後的類
'''
mysql中公共欄位被稱為 mysql中的字段型別
mysql支援大量的列型別,它可以被分為3類 數字型別 日期和時間型別以及字串 字元 型別。本節首先給出可用型別的乙個概述,並且總結每個列型別的儲存需求,然後提供每個類中的型別性質的更詳細的描述。概述有意簡化,更詳細的說明應該考慮到有關特定列型別的附加資訊,例如你能為其指定值的允許格式。由mysql...
被稱為「膠水語言」的Python,學了有什麼用呢?
當涉及資料科學 統計學 分析 ml 時,pyhton 是你最想使用的語言之一。python 是一門通用的程式語言,不僅可以用於統計程式設計,還可以用於開發遊戲 商業應用程式,等等。它很容易成為程式設計師理想的程式語言,你不僅可以用它賺到錢,還能在很快的時間內學到很多東西。2 web開發 python...
python中的元類
python中的元類大家都可能比較很陌生,因為大家都聽說過99 的情況下是用不到元類的,但是大家對類確很了解,大家都知道在python中萬物皆物件,那麼python中的類是不是物件呢?物件的樣子 1,物件可以在程式中動態的進行建立,python的語言動態特性。2,物件可以通過 class 獲取該物件...