以下是代码:
class Parent(object):
def __init__(self, last_name, eye_color):
self.last_name = last_name
self.eye_color = eye_color
def show_info(self):
print("The last_name -- " + self.last_name)
print("The eye_color -- " + self.eye_color)
class Child(Parent):
def __init__(self, last_name, eye_color, num_toys):
Parent.__init__(self, last_name, eye_color) ##need self here
self.num_toys = num_toys
def show_info(self):
print("The eye_color -- " + self.eye_color)
print("The eye_color -- " + self.eye_color)
print("The num_toys -- " , self.num_toys)
flint = Child("Fan", "Black", 0)
print(flint.eye_color)
flint.show_info()
但是当flint.show_info()
被调用时,这就是输出:
Black
The eye_color -- Black
The eye_color -- Black
The num_toys -- 0
last_name的额外空间来自哪里? 如果从Child中删除show_info,则额外的空间将消失。我正在使用python 3.5
答案 0 :(得分:1)
显然,你在那个位置有一个文字制表符(即你按TAB而不是SPACE):
def show_info(self):
print("The eye_color --<<<LITERAL TAB CHARACTER>>>" + self.eye_color)
print("The eye_color -- " + self.eye_color)
理想情况下,您应该配置您正在使用的编辑器,以使标签字符和空格可见,这样您就可以轻松识别和识别它们。
此外,Python的最佳做法和样式指南建议不要在源代码中使用制表符。因为它们在视觉上可能与空间字符无法区分(如您的情况),并且可能会前进到广泛不同的制表位值(例如8,4或任何其他奇数值)。