Nar*_*yan 11 python default initialization
有没有办法在python中创建一个空构造函数.我有一节课:
class Point:
def __init__(self, x, y, z):
self.x = x
self.y = y
self.z = z
Run Code Online (Sandbox Code Playgroud)
现在我像这样初始化它:
p = Point(0, 5, 10)
Run Code Online (Sandbox Code Playgroud)
如何创建一个空构造函数并像这样初始化它:
p = Point()
Run Code Online (Sandbox Code Playgroud)
小智 18
class Point:
def __init__(self):
pass
Run Code Online (Sandbox Code Playgroud)
Shr*_*yak 14
正如@jonrsharpe在评论中所说,你可以使用默认参数.
class Point:
def __init__(self, x=0, y=0, z=0):
self.x = x
self.y = y
self.z = z
Run Code Online (Sandbox Code Playgroud)
现在你可以打电话了 Point()
Wil*_*all 12
您可以通过以稍微不同的方式构造类来实现您想要的结果。
class Point:
def __init__(self):
pass
def setvalues(self, x, y, z):
self.x = x
self.y = y
self.z = z
Run Code Online (Sandbox Code Playgroud)
小智 8
您应该使用可选参数定义类的__init__()方法Point。
在您的情况下,这应该有效:
class Point:
def __init__(self, x=0, y=0, z=0):
self.x = x
self.y = y
self.z = z
pointA = Point(0, 5, 10)
print("pointA: x={}, y={}, z={}".format(pointA.x, pointA.y, pointA.z))
# print "pointA: x=0, y=5, z=10"
pointB = Point()
print("pointB: x={}, y={}, z={}".format(pointB.x, pointB.y, pointB.z))
# print "pointB: x=0, y=0, z=0"
Run Code Online (Sandbox Code Playgroud)