您好,欢迎来到外链网!
当前位置:外链网 » 站长资讯 » 专业问答 » 文章详细 订阅RssFeed

python isinstance函数,Python isinstance

来源:互联网 浏览:107次 时间:2023-04-08

>>>?a?=?input()??#?将input()返回的值赋值给a

Python

>>>?a????????????#?查看a的值(为字符串'Python')

'Python'

input()函数可以提供一个参数,用来提示用户:

>>>?b?=?input('请输入你最喜欢的水果:??')???#?给用户必要的提示

请输入你最喜欢的水果:??香蕉

>>>?b

'香蕉'

需要注意的是,input()函数返回的值总是字符串,当用户输入的是数字也是这样,所以当使用它时一定要注意:

>>>?num?=?input('请输入一个数字:?')

请输入一个数字:?10

>>>?num?+?9????????????????????????????#?试图把num和数字相加

Traceback?(most?recent?call?last):

File?"",?line?1,?in

TypeError:?must?be?str,?not?int

>>>?num

'10'

>>>?type(num)???????????????????????????#?查看num的数字类型

isinstance()

isinstance()函数用于检查对象是否为指定类(或者说数据类型)的实例。isintance()的第一个参数为一个对象,第二个参数为要检查的数据类型。

举个例子,比如有有一个变量,你想检查它是否为数字类型,可以使用isinstance()函数:

score?=?90

>>>?result?=?isinstance(score,?int)

>>>?if?result:

...?????print('score为int数据类型')

...?else:

...?????print('score不为int数据类型')

...

score为int数据类型

除了能检查是否为int类型外,isintance()还能检查其他数据类型(当然了),下面是一个综合示例:

>>>?pi?=?3.14

>>>?name?=?'Wang'

>>>?complex_num?=?1?+?2j

>>>?isinstance(pi,?float)??????????????#?3.14为浮点数类型

True

>>>?isinstance(name,?str)??????????????#?'Wang'为字符串类型

True

>>>?isinstance(complex_num,?complex)???#??1?+?2j为复数

True

isinstance()还可以验证某个对象是否为自定义的类型:

>>>?class?Developer:?????????????????????????????#?定义一个叫做Developer的类

...

...?????def?__init__(self,?name):????????????????#?__init__方法中,需要输入名字

...?????????self.name?=?name

...?????def?display(self):???????????????????????#?定义了display()方法

...?????????print("Developer:",?self.name,?"-")

...

>>>?class?PythonDeveloper(Developer):????????????#?PythonDeveloper类,继承了Developer类

...

...?????def?__init__(self,?name,?language):

...?????????self.name?=?name

...?????????self.language?=?language

...

...?????def?display(self):????????????????????????#?覆盖了父类的display方法

...?????????print("Python?Developer:",?self.name,?"language:",?self.language,?"-")

...

>>>?dev?=?Developer('Zhang')?????????????????????#?创建一个Developer对象

>>>?dev.display()????????????????????????????????#?调用display()方法,以查看该对象

Developer:?Zhang?-

>>>?isinstance(dev,?Developer)???????????????????#?判断dev是否为Developer类,答案是肯定的

True

>>>?isinstance(dev,?PythonDeveloper)?????????????#?判断dev是否为PythonDeveloper类,当然不是

False

>>>?python_dev?=?PythonDeveloper('Liu',?'Python')??#?创建一个PythonDeveloper对象,注意PythonDeveloper是Developer的子类

>>>?python_dev.display()??????????????????????????#?调用display方法

Python?Developer:?Liu?language:?Python?-

>>>?isinstance(python_dev,?Developer)?????????????#?判断python_dev是否为Developer类,答案是肯定的

True

>>>?isinstance(python_dev,?PythonDeveloper)??????#?判断python是否为PythonDeveloper类,答案也是肯定的

True

10345262