Hướng dẫn python check if variable is class member - python kiểm tra xem biến có phải là thành viên lớp không

Bạn có thể sử dụng thuộc tính

In [3]: "b" in Foo.__dict__.values[]
Out[3]: True
6 bao gồm một lớp, ví dụ:

In [1]: class Foo[object]:
   ...:     bar = "b"
   ...:     zulu = "z"
   ...:     
In [2]: "bar"  in Foo.__dict__
Out[2]: True

Hoặc khi bạn đang tìm kiếm các giá trị, sử dụng

In [3]: "b" in Foo.__dict__.values[]
Out[3]: True
7:

In [3]: "b" in Foo.__dict__.values[]
Out[3]: True

Như Peter Wood chỉ ra,

In [3]: "b" in Foo.__dict__.values[]
Out[3]: True
8 tích hợp cũng có thể được sử dụng để truy xuất
In [3]: "b" in Foo.__dict__.values[]
Out[3]: True
6:

In [12]: "b" in vars[Foo].values[]
Out[12]: True

Thuộc tính

In [3]: "b" in Foo.__dict__.values[]
Out[3]: True
6 được sử dụng làm không gian tên cho các lớp và do đó cũng sẽ trả về tất cả các phương thức, phương thức ma thuật và thuộc tính riêng trong lớp, vì vậy, đối với sự mạnh mẽ, bạn có thể muốn sửa đổi tìm kiếm của mình một chút để bù.

Trong trường hợp của bạn, bạn có thể muốn sử dụng

In [12]: "b" in vars[Foo].values[]
Out[12]: True
1, chẳng hạn như:

class States[object]:
    ALABAMA = "AL"
    FLORIDA = "FL"

    @classmethod
    def is_state[cls, to_find]:
        print[vars[cls]]
        states = [val for key, val in vars[cls].items[]
                  if not key.startswith["__"]
                  and isinstance[val, str]]
        return to_find in states

States.is_state["AL"] # True
States.is_state["FL"] # True
States.is_state["is_state"] # False
States.is_state["__module__"] # False

Cập nhật câu trả lời rõ ràng của câu hỏi OPS, nhưng độc giả cũng có thể quan tâm đến thư viện

In [12]: "b" in vars[Foo].values[]
Out[12]: True
2 trong Python 3, điều này hoàn toàn có thể là một thùng chứa tốt hơn cho dữ liệu như thế này. This clearly answer's the OPs question, but readers may also be interested in the
In [12]: "b" in vars[Foo].values[]
Out[12]: True
2 library in Python 3, which would quite possibly be a better container for data such as this.

Hàm Python từ

In [12]: "b" in vars[Foo].values[]
Out[12]: True
3 kiểm tra xem đối tượng hoặc biến có phải là một thể hiện của loại lớp hoặc loại dữ liệu được chỉ định hay không.

Ví dụ:

In [12]: "b" in vars[Foo].values[]
Out[12]: True
4 kiểm tra xem
In [12]: "b" in vars[Foo].values[]
Out[12]: True
5 là một ví dụ của lớp
In [12]: "b" in vars[Foo].values[]
Out[12]: True
6.

Ngoài ra, giải quyết: Bài tập cơ bản Python và người mới bắt đầu đố: Python Basic Exercise and Beginners Quiz

Cách sử dụng hàm isInstance [] trong python

Hãy cùng xem cú pháp trước khi chuyển sang ví dụ.

Syntax::

isinstance[object, classinfo]
  • Phải mất hai đối số, và cả hai đều là bắt buộc.mandatory.
  • Hàm
    In [12]: "b" in vars[Foo].values[]
    Out[12]: True
    
    3 kiểm tra xem đối số
    In [12]: "b" in vars[Foo].values[]
    Out[12]: True
    
    8 là một thể hiện hoặc lớp con của đối số lớp
    In [12]: "b" in vars[Foo].values[]
    Out[12]: True
    
    9

Python isinstance []

Sử dụng hàm

In [12]: "b" in vars[Foo].values[]
Out[12]: True
3, chúng ta có thể kiểm tra xem một đối tượng/biến có phải là một thể hiện của loại hoặc lớp được chỉ định như int hoặc danh sách hay không. Trong trường hợp kế thừa, chúng ta có thể kiểm tra xem lớp được chỉ định có phải là lớp cha của một đối tượng không.

  1. Pass đối tượng đến isinstance []

    Chuyển biến bạn muốn kiểm tra dưới dạng đối số

    In [12]: "b" in vars[Foo].values[]
    Out[12]: True
    
    8 cho
    In [12]: "b" in vars[Foo].values[]
    Out[12]: True
    
    3. Ở đây đối tượng có thể là bất kỳ đối tượng lớp hoặc bất kỳ tên biến nào

  2. Chỉ định tên loại hoặc loại là đối số
    In [12]: "b" in vars[Foo].values[]
    Out[12]: True
    
    9

    Ví dụ:

    class States[object]:
        ALABAMA = "AL"
        FLORIDA = "FL"
    
        @classmethod
        def is_state[cls, to_find]:
            print[vars[cls]]
            states = [val for key, val in vars[cls].items[]
                      if not key.startswith["__"]
                      and isinstance[val, str]]
            return to_find in states
    
    States.is_state["AL"] # True
    States.is_state["FL"] # True
    States.is_state["is_state"] # False
    States.is_state["__module__"] # False
    
    4 để kiểm tra xem
    class States[object]:
        ALABAMA = "AL"
        FLORIDA = "FL"
    
        @classmethod
        def is_state[cls, to_find]:
            print[vars[cls]]
            states = [val for key, val in vars[cls].items[]
                      if not key.startswith["__"]
                      and isinstance[val, str]]
            return to_find in states
    
    States.is_state["AL"] # True
    States.is_state["FL"] # True
    States.is_state["is_state"] # False
    States.is_state["__module__"] # False
    
    5 có phải là một ví dụ của lớp ____ 36 .________ 29 là tên loại hoặc tên lớp bạn muốn kiểm tra đối với biến. Ở đây bạn có thể chỉ định tên loại dữ liệu hoặc tên lớp. Bạn cũng có thể vượt qua nhiều lớp/loại ở định dạng tuple. Ví dụ: bạn có thể vượt qua
    class States[object]:
        ALABAMA = "AL"
        FLORIDA = "FL"
    
        @classmethod
        def is_state[cls, to_find]:
            print[vars[cls]]
            states = [val for key, val in vars[cls].items[]
                      if not key.startswith["__"]
                      and isinstance[val, str]]
            return to_find in states
    
    States.is_state["AL"] # True
    States.is_state["FL"] # True
    States.is_state["is_state"] # False
    States.is_state["__module__"] # False
    
    6,
    In [12]: "b" in vars[Foo].values[]
    Out[12]: True
    
    6,
    isinstance[object, classinfo]
    0,
    isinstance[object, classinfo]
    1 hoặc bất kỳ lớp do người dùng tạo.
    In [12]: "b" in vars[Foo].values[]
    Out[12]: True
    
    9 is a type name or Class name you want to check against the variable. Here you can specify data type name or Class name.
    You can also pass multiple classes/types in a tuple format. For example, you can pass
    class States[object]:
        ALABAMA = "AL"
        FLORIDA = "FL"
    
        @classmethod
        def is_state[cls, to_find]:
            print[vars[cls]]
            states = [val for key, val in vars[cls].items[]
                      if not key.startswith["__"]
                      and isinstance[val, str]]
            return to_find in states
    
    States.is_state["AL"] # True
    States.is_state["FL"] # True
    States.is_state["is_state"] # False
    States.is_state["__module__"] # False
    
    6,
    In [12]: "b" in vars[Foo].values[]
    Out[12]: True
    
    6,
    isinstance[object, classinfo]
    0,
    isinstance[object, classinfo]
    1, or any user-created class.

  3. Thực hiện thao tác của bạn, nếu kết quả là đúng

    In [12]: "b" in vars[Foo].values[]
    Out[12]: True
    
    3 trả về true nếu một đối tượng hoặc biến thuộc loại được chỉ định khác.True if an object or variable is of a specified type otherwise False.

Thí dụ

Sử dụng isIntance [], chúng ta có thể xác minh xem một biến là số hoặc chuỗi. Hãy cùng giả sử biến

isinstance[object, classinfo]
3 và bạn muốn kiểm tra xem Num có phải là một thể hiện của loại INT hay không.

num = 90
result = isinstance[num, int]
if result:
    print["Yes"]
else:
    print["No"]

Output::

Yes

Như chúng ta có thể thấy trong đầu ra,

In [12]: "b" in vars[Foo].values[]
Out[12]: True
3 đã trả lại
isinstance[object, classinfo]
5 vì
isinstance[object, classinfo]
6 giữ giá trị số nguyên.

Lưu ý: Nếu đối số

In [12]: "b" in vars[Foo].values[]
Out[12]: True
9 không phải là một loại, loại hoặc tuple loại, thì ngoại lệ
isinstance[object, classinfo]
8 được nêu ra.
: If the
In [12]: "b" in vars[Foo].values[]
Out[12]: True
9 argument is not a Class, type, or tuple of types, a
isinstance[object, classinfo]
8 exception is raised.

isinstance [] với các loại tích hợp

Như bạn đã biết, mọi giá trị [biến] trong Python có một loại. Trong Python, chúng ta có thể sử dụng các loại tích hợp khác nhau như

class States[object]:
    ALABAMA = "AL"
    FLORIDA = "FL"

    @classmethod
    def is_state[cls, to_find]:
        print[vars[cls]]
        states = [val for key, val in vars[cls].items[]
                  if not key.startswith["__"]
                  and isinstance[val, str]]
        return to_find in states

States.is_state["AL"] # True
States.is_state["FL"] # True
States.is_state["is_state"] # False
States.is_state["__module__"] # False
6,
num = 90
result = isinstance[num, int]
if result:
    print["Yes"]
else:
    print["No"]
0, danh sách, tuple, chuỗi, từ điển. Hầu hết thời gian, bạn muốn kiểm tra loại giá trị để thực hiện một số hoạt động. Trong trường hợp này, chức năng
In [12]: "b" in vars[Foo].values[]
Out[12]: True
3 là hữu ích.

# Check if 80 is an instance of class int
number = 80
print[isinstance[number, int]]
# output True

print[isinstance[number, float]]
# output False

pi = 3.14
# Check 3.14 is an instance of class float
print[isinstance[pi, float]]
# Output True

# Check if [1 + 2j] is an instance of complex
complex_num = 1 + 2j
print[isinstance[complex_num, complex]]
# Output True

# Check if 'PYnative' is an instance of class string
name = "PYnative.com"
print[isinstance[name, str]]
# Output True

# Check if names is an instance of class list
names = ["Eric", "Scott", "Kelly"]
print[isinstance[names, list]]
# Output True

# Check if student_report is an instance of class dict
student_report = {"John": 80, "Eric": 70, "Donald": 90}
print[isinstance[student_report, dict]]
# Output True

# Check if names is an instance of class tuple
names = ["Sam", "Kelly", 'Emma']
print[isinstance[names, tuple]]
# Output True

# Check if numbers is an instance of class tuple
numbers = {11, 22, 33, 44, 55}
print[isinstance[numbers, set]]
# Output True

Lưu ý: Nếu chúng tôi sử dụng

In [12]: "b" in vars[Foo].values[]
Out[12]: True
3 với bất kỳ biến hoặc đối tượng nào có
num = 90
result = isinstance[num, int]
if result:
    print["Yes"]
else:
    print["No"]
3, nó sẽ trả về
num = 90
result = isinstance[num, int]
if result:
    print["Yes"]
else:
    print["No"]
4. Hãy xem ví dụ đơn giản của nó.
: If we use the
In [12]: "b" in vars[Foo].values[]
Out[12]: True
3 with any variable or object with a
num = 90
result = isinstance[num, int]
if result:
    print["Yes"]
else:
    print["No"]
3, it returns
num = 90
result = isinstance[num, int]
if result:
    print["Yes"]
else:
    print["No"]
4. Let see the simple example of it.

var = None
# empty but not None
s1 = ''
print[isinstance[var, float]]
# Output False
print[isinstance[s1, str]]
# Output True

isinstance [] với nhiều lớp

Bạn cũng có thể kiểm tra phiên bản với nhiều loại. Hãy nói rằng bạn có một biến và bạn muốn kiểm tra xem nó có giữ bất kỳ giá trị số nào hay không, ví dụ, giá trị số có thể là một

class States[object]:
    ALABAMA = "AL"
    FLORIDA = "FL"

    @classmethod
    def is_state[cls, to_find]:
        print[vars[cls]]
        states = [val for key, val in vars[cls].items[]
                  if not key.startswith["__"]
                  and isinstance[val, str]]
        return to_find in states

States.is_state["AL"] # True
States.is_state["FL"] # True
States.is_state["is_state"] # False
States.is_state["__module__"] # False
6 hoặc
num = 90
result = isinstance[num, int]
if result:
    print["Yes"]
else:
    print["No"]
0.

Để xác minh xem một biến có phải là một thể hiện của một trong các loại được chỉ định hay không, chúng ta cần đề cập đến tất cả các loại trong một tuple và chuyển nó đến đối số classinfo của

In [12]: "b" in vars[Foo].values[]
Out[12]: True
3.

Thí dụ

def check_number[var]:
    if isinstance[var, [int, float]]:
        print['variable', var, 'is instance of numeric type']
    else:
        print['variable', var, 'is not instance of numeric type']

num1 = 80
check_number[num1]
# Output variable 80 is instance of numeric type

num2 = 55.70
check_number[num2]
# Output variable 55.7 is instance of numeric type

num3 = '20'
check_number[num3]
# Output variable '20' is not instance of numeric type

Sử dụng isIntance [], chúng ta có thể xác minh xem một biến là số hoặc chuỗi. Hãy cùng giả sử biến

isinstance[object, classinfo]
3 và bạn muốn kiểm tra xem Num có phải là một thể hiện của loại INT hay không.

Bạn có thể xác minh xem đối tượng

num = 90
result = isinstance[num, int]
if result:
    print["Yes"]
else:
    print["No"]
9 là một thể hiện của một nhân viên lớp do người dùng xác định bằng hàm
In [12]: "b" in vars[Foo].values[]
Out[12]: True
3. Nó phải trả về đúng.

In [3]: "b" in Foo.__dict__.values[]
Out[3]: True
0

chức năng isinstance [] với sự kế thừa

Đối tượng của loại lớp con cũng là một loại lớp cha. Ví dụ, nếu xe là một lớp con của một chiếc xe, thì đối tượng của xe có thể được gọi bằng xe hơi hoặc xe. Trong trường hợp này,

Yes
1 sẽ trả lại
isinstance[object, classinfo]
5.

Hàm

In [12]: "b" in vars[Foo].values[]
Out[12]: True
3 hoạt động theo nguyên tắc của mối quan hệ IS-A. Khái niệm về mối quan hệ IS-A dựa trên kế thừa lớp học.

Yes
4 trả về đúng nếu đối số classinfo của trường hợp [] là lớp cha mẹ của lớp đối tượng.

Để chứng minh điều này, tôi đã tạo ra hai lớp, nhà phát triển và Pythondeveoper. Ở đây Pythondeveoper là một lớp phụ của một lớp nhà phát triển.

In [3]: "b" in Foo.__dict__.values[]
Out[3]: True
1

Lưu ý: Hàm

In [12]: "b" in vars[Foo].values[]
Out[12]: True
3 có lợi cho các đối tượng đúc trong thời gian chạy vì một khi bạn biết lớp đã cho là một lớp con của lớp cha, bạn có thể thực hiện việc đúc một cách thích hợp nếu được yêu cầu.: The
In [12]: "b" in vars[Foo].values[]
Out[12]: True
3 function is beneficial for casting objects at runtime because once you get to know the given class is a subclass of a parent class, you can do casting appropriately if required.

isinstance với danh sách python

Như bạn đã biết, một danh sách Python được sử dụng để lưu trữ nhiều giá trị cùng một lúc. Các giá trị này có thể thuộc bất kỳ loại dữ liệu nào như số, chuỗi hoặc bất kỳ đối tượng lớp nào.

Trong phần này, chúng tôi sẽ kiểm tra các hoạt động sau với danh sách Python bằng hàm

In [12]: "b" in vars[Foo].values[]
Out[12]: True
3:

  • Kiểm tra xem một đối tượng thuộc loại
    isinstance[object, classinfo]
    0 trong Python.
  • Kiểm tra xem một yếu tố của danh sách là một danh sách.
  • Xác minh nếu các yếu tố của danh sách là số hoặc chuỗi.
  • Kiểm tra Python nếu tất cả các yếu tố của danh sách là cùng loại

Kiểm tra xem một đối tượng có phải là một thể hiện của loại danh sách không

In [3]: "b" in Foo.__dict__.values[]
Out[3]: True
2

Kiểm tra xem một phần tử của danh sách là danh sách lồng nhau

Để kiểm tra xem một trong các yếu tố trong danh sách có phải là một danh sách không. Ví dụ: bạn có danh sách sau, sử dụng

In [12]: "b" in vars[Foo].values[]
Out[12]: True
3 để xác minh xem danh sách có chứa danh sách lồng nhau

In [3]: "b" in Foo.__dict__.values[]
Out[3]: True
3

Lặp lại một danh sách và xác minh từng lớp phần tử và nếu nó là loại danh sách, chúng ta có thể nói rằng danh sách chứa một danh sách lồng nhau.

In [3]: "b" in Foo.__dict__.values[]
Out[3]: True
4

Kiểm tra xem các yếu tố của danh sách là số hoặc chuỗi

Kiểm tra từng loại phần tử với nhiều loại số như

class States[object]:
    ALABAMA = "AL"
    FLORIDA = "FL"

    @classmethod
    def is_state[cls, to_find]:
        print[vars[cls]]
        states = [val for key, val in vars[cls].items[]
                  if not key.startswith["__"]
                  and isinstance[val, str]]
        return to_find in states

States.is_state["AL"] # True
States.is_state["FL"] # True
States.is_state["is_state"] # False
States.is_state["__module__"] # False
6,
num = 90
result = isinstance[num, int]
if result:
    print["Yes"]
else:
    print["No"]
0 và
# Check if 80 is an instance of class int
number = 80
print[isinstance[number, int]]
# output True

print[isinstance[number, float]]
# output False

pi = 3.14
# Check 3.14 is an instance of class float
print[isinstance[pi, float]]
# Output True

# Check if [1 + 2j] is an instance of complex
complex_num = 1 + 2j
print[isinstance[complex_num, complex]]
# Output True

# Check if 'PYnative' is an instance of class string
name = "PYnative.com"
print[isinstance[name, str]]
# Output True

# Check if names is an instance of class list
names = ["Eric", "Scott", "Kelly"]
print[isinstance[names, list]]
# Output True

# Check if student_report is an instance of class dict
student_report = {"John": 80, "Eric": 70, "Donald": 90}
print[isinstance[student_report, dict]]
# Output True

# Check if names is an instance of class tuple
names = ["Sam", "Kelly", 'Emma']
print[isinstance[names, tuple]]
# Output True

# Check if numbers is an instance of class tuple
numbers = {11, 22, 33, 44, 55}
print[isinstance[numbers, set]]
# Output True
1 sử dụng hàm
In [12]: "b" in vars[Foo].values[]
Out[12]: True
3.

Để tìm tất cả các biến chuỗi, hãy kiểm tra từng loại phần tử với loại

In [12]: "b" in vars[Foo].values[]
Out[12]: True
6.

In [3]: "b" in Foo.__dict__.values[]
Out[3]: True
5

Bước tiếp theo

Hãy cho tôi biết ý kiến ​​và phản hồi của bạn trong phần dưới đây.

Solve::

  • Bài tập Python cho người mới bắt đầu
  • Câu đố Python cho người mới bắt đầu

Làm thế nào để bạn kiểm tra xem một biến là một lớp trong Python?

Sử dụng hàm isInstance [], chúng ta có thể kiểm tra xem một đối tượng/biến có phải là một thể hiện của loại hoặc lớp được chỉ định như int hoặc danh sách hay không. Trong trường hợp kế thừa, chúng ta có thể kiểm tra xem lớp được chỉ định có phải là lớp cha của một đối tượng không. Ví dụ: isinstance [x, int] để kiểm tra xem x có phải là một thể hiện của lớp int không.isinstance[] function, we can test whether an object/variable is an instance of the specified type or class such as int or list. In the case of inheritance, we can checks if the specified class is the parent class of an object. For example, isinstance[x, int] to check if x is an instance of a class int .

Làm thế nào để bạn kiểm tra loại biến A nào trong Python?

Để có được loại biến trong Python, bạn có thể sử dụng hàm loại tích hợp [].Trong Python, mọi thứ đều là một đối tượng.Vì vậy, khi bạn sử dụng hàm loại [] để in loại giá trị được lưu trữ trong một biến cho bàn điều khiển, nó sẽ trả về loại lớp của đối tượng.use the built-in type[] function. In Python, everything is an object. So, when you use the type[] function to print the type of the value stored in a variable to the console, it returns the class type of the object.

Isinstance có nghĩa là gì trong Python?

Hàm python isInstance [] hàm isInstance [] trả về true nếu đối tượng được chỉ định thuộc loại được chỉ định, nếu không là sai.Nếu tham số loại là một tuple, hàm này sẽ trả về true nếu đối tượng là một trong các loại trong tuple.returns True if the specified object is of the specified type, otherwise False . If the type parameter is a tuple, this function will return True if the object is one of the types in the tuple.

Làm thế nào để bạn kiểm tra xem một lớp học là một lớp con trong Python?

Python IssubClass [] là chức năng tích hợp được sử dụng để kiểm tra xem một lớp có phải là lớp con của lớp khác hay không.Hàm này trả về true nếu lớp đã cho là lớp con của lớp đã cho khác, nó trả về sai. is built-in function used to check if a class is a subclass of another class or not. This function returns True if the given class is the subclass of given class else it returns False.

Bài Viết Liên Quan

Chủ Đề