Hàm type () trả về kiểu của đối tượng hoặc trả về đối tượng kiểu mới dựa trên các đối số được truyền vào.
Các type()
chức năng có hai hình thức khác nhau:
type (object) type (name, base, dict)
type () Với một tham số đối tượng duy nhất
Nếu một đối tượng được chuyển đến type()
, hàm sẽ trả về kiểu của nó.
Ví dụ 1: Lấy loại đối tượng
numbers_list = (1, 2) print(type(numbers_list)) numbers_dict = (1: 'one', 2: 'two') print(type(numbers_dict)) class Foo: a = 0 foo = Foo() print(type(foo))
Đầu ra
Nếu bạn cần kiểm tra loại đối tượng, tốt hơn nên sử dụng hàm isinstance () trong Python. Đó là bởi vì isinstance()
hàm cũng kiểm tra xem đối tượng đã cho có phải là một thể hiện của lớp con hay không.
type () Với tên, căn cứ và Tham số chính
Nếu ba tham số được chuyển đến type()
, nó sẽ trả về một đối tượng kiểu mới .
Ba tham số là:
Tham số | Sự miêu tả |
---|---|
Tên | tên lớp; trở thành __name__ thuộc tính |
căn cứ | một bộ tuple chia thành các lớp cơ sở; trở thành __bases__ thuộc tính |
dict | một từ điển là không gian tên chứa các định nghĩa cho thân lớp; trở thành __dict__ thuộc tính |
Ví dụ 2: Tạo một đối tượng kiểu
o1 = type('X', (object,), dict(a='Foo', b=12)) print(type(o1)) print(vars(o1)) class test: a = 'Foo' b = 12 o2 = type('Y', (test,), dict(a='Foo', b=12)) print(type(o2)) print(vars(o2))
Đầu ra
('a': 'Foo', 'b': 12, '__module__': '__main__', '__dict__':, '__weakref__':, '__doc__': Không có) ('a': 'Foo', 'b ': 12,' __module__ ':' __main__ ',' __doc__ ': Không có)
Trong chương trình, chúng tôi đã sử dụng hàm Python vars () để trả về __dict__
thuộc tính. __dict__
được sử dụng để lưu trữ các thuộc tính có thể ghi của đối tượng.
Bạn có thể dễ dàng thay đổi các thuộc tính này nếu cần thiết. Ví dụ: nếu bạn cần thay đổi __name__
thuộc tính của o1 thành 'Z'
, hãy sử dụng:
o1 .__ name = 'Z'