Python 类函数返回不同的结果
我有两种不同的方法来设置python类。一个自动运行类函数,另一个需要手动运行 手动运行功能:Python 类函数返回不同的结果,python,class,output,Python,Class,Output,我有两种不同的方法来设置python类。一个自动运行类函数,另一个需要手动运行 手动运行功能: class testclass: def __init__(self, value): self.value = value def validator(self): data = self.value[0] + self.value[1] data = int(data) return data theClass = testclass(
class testclass:
def __init__(self, value):
self.value = value
def validator(self):
data = self.value[0] + self.value[1]
data = int(data)
return data
theClass = testclass('123456')
print(theClass.validator())
class testclass:
def __init__(self, value):
self.value = value
self.validator()
def validator(self):
data = self.value[0] + self.value[1]
data = int(data)
return data
theClass = testclass('123456')
print(theClass)
class TestClass: # sticking to more Pythonic naming conventions
def __init__(self, value):
self.value = value
self.validator()
def validator(self):
print(int(self.value[0] + self.value[1]))
这是“12”
自动运行该功能:
class testclass:
def __init__(self, value):
self.value = value
def validator(self):
data = self.value[0] + self.value[1]
data = int(data)
return data
theClass = testclass('123456')
print(theClass.validator())
class testclass:
def __init__(self, value):
self.value = value
self.validator()
def validator(self):
data = self.value[0] + self.value[1]
data = int(data)
return data
theClass = testclass('123456')
print(theClass)
class TestClass: # sticking to more Pythonic naming conventions
def __init__(self, value):
self.value = value
self.validator()
def validator(self):
print(int(self.value[0] + self.value[1]))
这张照片显示“
如何自动运行类函数,并且仍然获得12作为打印输出?如果您只想打印输出值,而不将其用作变量,则可以将
\uu str\uuu
定义为类的一部分
class testclass(object):
def __init__(self, value):
self.value = value
def __str__(self):
return self.validator()
def validator(self):
data = self.value[0] + self.value[1]
data = int(data)
return data
>>> theClass = testclass('123456')
>>> print(theClass)
12
如果您想将其用作变量,例如类+5,那么在这种情况下,使用自定义类就不是一个好办法。如果您只想打印输出值,而不想将其用作变量,则可以将
\uu str\uuu
定义为类的一部分
class testclass(object):
def __init__(self, value):
self.value = value
def __str__(self):
return self.validator()
def validator(self):
data = self.value[0] + self.value[1]
data = int(data)
return data
>>> theClass = testclass('123456')
>>> print(theClass)
12
如果您想将其用作变量,例如
类+5
,那么在这种情况下,使用自定义类不是一个好办法。在验证程序中打印函数:
class testclass:
def __init__(self, value):
self.value = value
def validator(self):
data = self.value[0] + self.value[1]
data = int(data)
return data
theClass = testclass('123456')
print(theClass.validator())
class testclass:
def __init__(self, value):
self.value = value
self.validator()
def validator(self):
data = self.value[0] + self.value[1]
data = int(data)
return data
theClass = testclass('123456')
print(theClass)
class TestClass: # sticking to more Pythonic naming conventions
def __init__(self, value):
self.value = value
self.validator()
def validator(self):
print(int(self.value[0] + self.value[1]))
这将在创建实例时自动打印验证输出:
>>> the_class = TestClass('123456')
12
在验证程序
功能内打印:
class testclass:
def __init__(self, value):
self.value = value
def validator(self):
data = self.value[0] + self.value[1]
data = int(data)
return data
theClass = testclass('123456')
print(theClass.validator())
class testclass:
def __init__(self, value):
self.value = value
self.validator()
def validator(self):
data = self.value[0] + self.value[1]
data = int(data)
return data
theClass = testclass('123456')
print(theClass)
class TestClass: # sticking to more Pythonic naming conventions
def __init__(self, value):
self.value = value
self.validator()
def validator(self):
print(int(self.value[0] + self.value[1]))
这将在创建实例时自动打印验证输出:
>>> the_class = TestClass('123456')
12
在您的自动示例中,您没有调用“类”。任何函数调用都需要()
。
您可以将自动验证器重命名为\uuuuu call\uuuu
,并将其称为theClass()
请参阅自动示例中的更多内容,您没有调用“类”。任何函数调用都需要()
。
您可以将自动验证器重命名为\uuuuu call\uuuu
,并将其称为theClass()
查看第二个版本中的更多信息,您正在调用中的验证程序函数,但不返回验证程序返回的值。问题是\uuuu init\uuuu
只能返回None
。您可以做的是将值分配给实例变量:
class testclass:
value = 0
def __init__(self, value):
self.value = value
self.value = self.validator()
def validator(self):
data = self.value[0] + self.value[1]
data = int(data)
return data
theClass = testclass('123456')
print(theClass.value)
乌普图特:
12
在第二个版本中,您正在调用中的验证器
函数,但不返回验证器
返回的值。问题是\uuuu init\uuuu
只能返回None
。您可以做的是将值分配给实例变量:
class testclass:
value = 0
def __init__(self, value):
self.value = value
self.value = self.validator()
def validator(self):
data = self.value[0] + self.value[1]
data = int(data)
return data
theClass = testclass('123456')
print(theClass.value)
乌普图特:
12