Mọi thứ trong Python là một đối tượng bao gồm các lớp. Tất cả các lớp là thể hiện của một lớp được gọi là "kiểu". Đối tượng kiểu cũng là một thể hiện của lớp kiểu. Bạn có thể kiểm tra phân cấp kế thừa của lớp bằng cách kiểm tra thuộc tính __bases__ của một đối tượng lớp. Phương thức type () trả về kiểu lớp của đối số (đối tượng) được truyền dưới dạng tham số. Nếu một kiểu đối số (obj) được truyền cho phương thức type, nó sẽ trả về kiểu của đối tượng đã cho. Nếu ba đối số kiểu (name, base, dict) được truyền, nó sẽ trả về một đối tượng kiểu mới.
Sử dụng type ()
Hãy xem xét các lớp để biết các kiểu dữ liệu được sử dụng nhiều nhất. Trong chương trình dưới đây, chúng tôi khởi tạo một số biến và sau đó sử dụng kiểu () để xác định lớp của chúng.
Ví dụ
# Some variables a = 5 b = 5.2 c = 'hello' A = [1,4,7] B = {'k1':'Sun','K2':"Mon",'K3':'Tue'} C = ('Sky','Blue','Vast') print(type(a)) print(type(b)) print(type(c)) print(type(A)) print(type(B)) print(type(C))
Đầu ra
Chạy đoạn mã trên cho chúng ta kết quả sau -
<class 'int'> <class 'float'> <class 'str'> <class 'list'> <class 'dict'> <class 'tuple'>
Loại lớp
Nếu chúng ta đi sâu hơn để xem xét loại lớp ở trên, chúng ta sẽ thấy rằng tất cả chúng đều thuộc về lớp có tên là "type".
Ví dụ
print(type(int)) print(type(dict)) print(type(list)) print(type(type))
Đầu ra
Chạy đoạn mã trên cho chúng ta kết quả sau -
<class 'type'> <class 'type'> <class 'type'> <class 'type'>
Tạo một loại đối tượng mới
Chúng ta cũng có thể sử dụng một cách tiếp cận tương tự như trên để tạo các đối tượng mới. Ở đây chúng tôi chuyển ba tham số để tạo đối tượng kiểu mới.
Ví dụ
Object1 = type('A', (object,), dict(a='Hello', b=5)) print(type(Object1)) print(vars(Object1)) class NewCalss: a = 'Good day!' b = 7 Object2 = type('B', (NewCalss,), dict(a='Hello', b=5)) print(type(Object2)) print(vars(Object2))
Đầu ra
Chạy đoạn mã trên cho chúng ta kết quả sau -
<class 'type'> {'a': 'Hello', 'b': 5, '__module__': '__main__', '__dict__': <attribute '__dict__' of 'A' objects>, '__weakref__': <attribute '__weakref__' of 'A' objects>, '__doc__': None} <class 'type'> {'a': 'Hello', 'b': 5, '__module__': '__main__', '__doc__': None}