Hướng dẫn how do you check and compare data types in python? - làm cách nào để bạn kiểm tra và so sánh các kiểu dữ liệu trong python?

Đó là bởi vì bạn phải viết

s="hello"
type[s] == type[""]

Loại chấp nhận một thể hiện và trả về loại của nó. Trong trường hợp này, bạn phải so sánh hai loại trường hợp.

Nếu bạn cần kiểm tra ưu tiên, sẽ tốt hơn nếu bạn kiểm tra giao diện được hỗ trợ so với loại.

Loại không thực sự cho bạn biết nhiều, ngoài thực tế là mã của bạn muốn có một thể hiện của một loại cụ thể, bất kể thực tế là bạn có thể có một thể hiện khác của một loại hoàn toàn khác sẽ hoàn toàn tốt vì nó thực hiện cùng một giao diện .

Ví dụ: giả sử bạn có mã này

def firstElement[parameter]:
    return parameter[0]

Bây giờ, giả sử bạn nói: Tôi muốn mã này chỉ chấp nhận một tuple.

import types

def firstElement[parameter]:
    if type[parameter] != types.TupleType:
         raise TypeError["function accepts only a tuple"]
    return parameter[0]

Điều này đang giảm khả năng tái sử dụng của thói quen này. Nó sẽ không hoạt động nếu bạn vượt qua một danh sách, hoặc một chuỗi hoặc numpy.array. Một cái gì đó tốt hơn sẽ là

def firstElement[parameter]:
    if not [hasattr[parameter, "__getitem__"] and callable[getattr[parameter,"__getitem__"]]]:
        raise TypeError["interface violation"]
    return parameter[0]

Nhưng không có điểm nào trong việc làm điều đó: tham số [0] sẽ tăng một ngoại lệ nếu giao thức không được thỏa mãn ... tất nhiên điều này trừ khi bạn muốn ngăn chặn các tác dụng phụ hoặc phải phục hồi sau các cuộc gọi mà bạn có thể gọi trước khi thất bại. [Ngu ngốc] Ví dụ, chỉ để đưa ra quan điểm:

def firstElement[parameter]:
    if not [hasattr[parameter, "__getitem__"] and callable[getattr[parameter,"__getitem__"]]]:
        raise TypeError["interface violation"]
    os.system["rm file"]
    return parameter[0]

Trong trường hợp này, mã của bạn sẽ tăng một ngoại lệ trước khi chạy cuộc gọi hệ thống []. Nếu không kiểm tra giao diện, bạn sẽ xóa tệp, và sau đó nêu ra ngoại lệ.

& nbsp;

Hàm isinstance là trang được trang bị tốt nhất để xử lý kiểm tra loại vì nó hỗ trợ kế thừa [ví dụ: một thể hiện của lớp dẫn xuất cũng là một thể hiện của một lớp cơ sở]. Do đó, isinstance nên được sử dụng bất cứ khi nào cần so sánh loại.

Chống lại mẫu

Câu lệnh

def firstElement[parameter]:
    return parameter[0]
0 bên dưới sử dụng mẫu
def firstElement[parameter]:
    return parameter[0]
1 để so sánh đối tượng
def firstElement[parameter]:
    return parameter[0]
2 với loại tích hợp [
def firstElement[parameter]:
    return parameter[0]
3 trong ví dụ này]. Đây không phải là mẫu ưa thích để so sánh các loại.

import types

class Rectangle[object]:
    def __init__[self, width, height]:
        self.width = width
        self.height = height

r = Rectangle[3, 4]

# bad
if type[r] is types.ListType:
    print["object r is a list"]

Lưu ý rằng tình huống sau sẽ không làm tăng lỗi, mặc dù nó nên.

import types

class Rectangle[object]:
    def __init__[self, width, height]:
        self.width = width
        self.height = height

class Circle[object]:
    def __init__[self, radius]:
        self.radius = radius

c = Circle[2]
r = Rectangle[3, 4]

# bad
if type[r] is not type[c]:
    print["object types do not match"]

Thực hành tốt nhất¶

Sử dụng isinstance để so sánh các loại

Mẫu ưa thích để so sánh các loại là chức năng tích hợp isinstance.

import types

class Rectangle[object]:
    def __init__[self, width, height]:
        self.width = width
        self.height = height

r = Rectangle[3, 4]

# good
if isinstance[r, types.ListType]:
    print["object r is a list"]

Phương pháp nào được sử dụng để kiểm tra kiểu dữ liệu trong Python?

Nói chung, chúng tôi sử dụng hàm loại [] để kiểm tra loại dữ liệu của bất kỳ biến nào được sử dụng trong Python. Hàm loại [] có thể trả về kiểu dữ liệu bằng một đối số. Tuy nhiên, các loại dữ liệu được sử dụng trong Python có một chút khác biệt so với các loại được sử dụng trong C hoặc C ++.type[] function to check the data type of any variable used in Python. The type[] function can return the data type with a single argument. However, the data types used in Python are a bit different from those used in C or C++.

Bạn có thể kiểm tra các loại trong Python không?

Để kiểm tra loại dữ liệu của biến trong Python, hãy sử dụng phương thức loại [].Loại [] là một phương thức Python tích hợp, trả về loại lớp của đối số [đối tượng] được truyền dưới dạng tham số.Bạn đặt biến bên trong hàm loại [] và Python trả về kiểu dữ liệu.use the type[] method. The type[] is a built-in Python method that returns the class type of the argument[object] passed as a parameter. You place the variable inside a type[] function, and Python returns the data type.

Làm thế nào để bạn kiểm tra và so sánh một đối tượng trong Python?

Nếu bạn cần kiểm tra loại đối tượng, thay vào đó, bạn nên sử dụng hàm Python isInstance [].Đó là bởi vì hàm isInstance [] cũng kiểm tra xem đối tượng đã cho là một thể hiện của lớp con.use the Python isinstance[] function instead. It's because isinstance[] function also checks if the given object is an instance of the subclass.

Làm thế nào để bạn so sánh hai phương pháp trong Python?

Summary. - To compare two objects we need to implement the built in __comparison__ operators. - If we implement the < and or >= or equal methods we get the others for free, since Python just flips the symbols if it can't find the method we called.

Chủ Đề