python type函数
Python has a lot of buit-in function. The type()
function is used to get the type of an object.
Python具有很多内置功能。 type()
函数用于获取对象的类型。
Python type() function syntax is:
Python type()函数语法为:
type(object)
type(name, bases, dict)
Let’s look into some examples of using the type() function.
让我们看一些使用type()函数的示例。
x = 10
print(type(x))
s = 'abc'
print(type(s))
from collections import OrderedDict
od = OrderedDict()
print(type(od))
class Data:
pass
d = Data()
print(type(d))
Output:
输出:
Notice that the type() function returns the type of the object with the module name. Since our Python script doesn’t have a module, it’s module becomes __main__.
注意,type()函数返回带有模块名称的对象的类型。 由于我们的Python脚本没有模块,因此该模块成为__main__。
Let’s say we have following classes.
假设我们有以下课程。
class Data:
"""Data Class"""
d_id = 10
class SubData(Data):
"""SubData Class"""
sd_id = 20
Let’s print some of the properties of these classes.
让我们打印这些类的一些属性。
print(Data.__class__)
print(Data.__bases__)
print(Data.__dict__)
print(Data.__doc__)
print(SubData.__class__)
print(SubData.__bases__)
print(SubData.__dict__)
print(SubData.__doc__)
Output:
输出:
(,)
{'__module__': '__main__', '__doc__': 'Data Class', 'd_id': 10, '__dict__': , '__weakref__': }
Data Class
(,)
{'__module__': '__main__', '__doc__': 'SubData Class', 'sd_id': 20}
SubData Class
We can create similar classes using the type() function.
我们可以使用type()函数创建类似的类。
Data1 = type('Data1', (object,), {'__doc__': 'Data1 Class', 'd_id': 10})
SubData1 = type('SubData1', (Data1,), {'__doc__': 'SubData1 Class', 'sd_id': 20})
print(Data1.__class__)
print(Data1.__bases__)
print(Data1.__dict__)
print(Data1.__doc__)
print(SubData1.__class__)
print(SubData1.__bases__)
print(SubData1.__dict__)
print(SubData1.__doc__)
Output:
输出:
(,)
{'__doc__': 'Data1 Class', 'd_id': 10, '__module__': '__main__', '__dict__': , '__weakref__': }
Data1 Class
(,)
{'__doc__': 'SubData1 Class', 'sd_id': 20, '__module__': '__main__'}
SubData1 Class
Note that we can’t create functions in the dynamic class using the type() function.
注意,我们不能使用type()函数在动态类中创建函数。
Python is a dynamically-typed language. So, if we want to know the type of the arguments, we can use the type() function. If you want to make sure that your function works only on the specific types of objects, use isinstance() function.
Python是一种动态类型的语言。 因此,如果我们想知道参数的类型,可以使用type()函数。 如果要确保函数仅适用于特定类型的对象,请使用isinstance()函数。
Let’s say we want to create a function to calculate something on two integers. We can implement it in the following way.
假设我们要创建一个函数来计算两个整数。 我们可以通过以下方式实现它。
def calculate(x, y, op='sum'):
if not(isinstance(x, int) and isinstance(y, int)):
print(f'Invalid Types of Arguments - x:{type(x)}, y:{type(y)}')
raise TypeError('Incompatible types of arguments, must be integers')
if op == 'difference':
return x - y
if op == 'multiply':
return x * y
# default is sum
return x + y
The isinstance() function is used to validate the input argument type. The type() function is used to print the type of the parameters when validation fails.
isinstance()函数用于验证输入参数类型。 当验证失败时,type()函数用于打印参数的类型。
翻译自: https://www.journaldev.com/15076/python-type
python type函数