Python OOP 数据类型
Python OOP datatype
当数据类型实际上正确时,为什么它说 'Die eingegebenen Daten haben den falschen Datentyp!'?甚至不能只使用 matrNr...虽然我检查了我输入的 matrNr 是一个 int?!
class Student:
def __init__(self):
self.matrNr = -1
self.vorname = ''
self.nachname = ''
self.gebDatum = []
self.email = ''
self.telNr = ''
def DatenUebergeben(self, matrNr, vorname, nachname, gebDatum, telNr):
if matrNr == int and vorname == str and nachname == str and gebDatum == list and telNr == str:
print('richtige Datentypen!')
else:
print('Die eingegebenen Daten haben den falschen Datentyp!')
student1 = Student()
student1.DatenUebergeben(12345,'linda','f',[2,2,1995],'12345')
背景
通过检查(例如)matrNr == int
,您实际上比较了变量 matNr
,它是 int
(<class 'int'>
的一个实例)与 class int (<class 'int'>
).
快速修复
您可以使用 type()
函数获取变量的类型,结果为 type(matrNr) == int
。这正是您要实现的目标。
更好的解决方案
在 Python 中,您可以通过在参数后添加 : <type>
来定义函数接受的变量类型。因此,更好的解决方案是:
def DatenUebergeben(self, matrNr: int, vorname: str, nachname: str, gebDatum: list, telNr: str):
# do something
当数据类型实际上正确时,为什么它说 'Die eingegebenen Daten haben den falschen Datentyp!'?甚至不能只使用 matrNr...虽然我检查了我输入的 matrNr 是一个 int?!
class Student:
def __init__(self):
self.matrNr = -1
self.vorname = ''
self.nachname = ''
self.gebDatum = []
self.email = ''
self.telNr = ''
def DatenUebergeben(self, matrNr, vorname, nachname, gebDatum, telNr):
if matrNr == int and vorname == str and nachname == str and gebDatum == list and telNr == str:
print('richtige Datentypen!')
else:
print('Die eingegebenen Daten haben den falschen Datentyp!')
student1 = Student()
student1.DatenUebergeben(12345,'linda','f',[2,2,1995],'12345')
背景
通过检查(例如)matrNr == int
,您实际上比较了变量 matNr
,它是 int
(<class 'int'>
的一个实例)与 class int (<class 'int'>
).
快速修复
您可以使用 type()
函数获取变量的类型,结果为 type(matrNr) == int
。这正是您要实现的目标。
更好的解决方案
在 Python 中,您可以通过在参数后添加 : <type>
来定义函数接受的变量类型。因此,更好的解决方案是:
def DatenUebergeben(self, matrNr: int, vorname: str, nachname: str, gebDatum: list, telNr: str):
# do something