缩进代码的最佳方法

时间:2017-11-22 06:36:35

标签: indentation

关于是否使用制表符或空格进行缩进,存在长期争论。还有一个争论是应该使用多少空格来缩进。此外,它相信你不应该在一行中混合标签和空格。此外,每个人都使用不同的编辑器和缩进首选项。在阅读其他代码时,它常常会导致混乱。但是,我认为最佳做法是混合标签和空格 这是一个例子:(使用tab缩进,4个空格)

if x_valid_file != None and y_valid_file != None:
\t--mdl.fit_generator(train_generator, steps_per_epoch=len(cp_x_train_line_offset),
\t--\s----------------validation_data=validation_generator, verbose=1,
\t--\s----------------validation_steps=len(fix_y_valid_line_offset), epochs=training_epochs,
\t--\s----------------callbacks=[EarlyStopping(monitor='val_loss', min_delta=0, patience=0, verbose=0, mode='auto')])

在编写代码时,我希望每个参数都能与第一个参数对齐,这使得它非常容易阅读 我认为混合标签和空格是实现这一目标的唯一方法 2.你可能会争辩说,使用所有空间都可以实现这一点,但我对此表示怀疑,因为许多编辑会自动检测缩进并转换为用户'偏好。
这是另一个例子:(使用4个空格来缩进)

if x_valid_file != None and y_valid_file != None:
\s--mdl.fit_generator(train_generator, steps_per_epoch=len(cp_x_train_line_offset),
\s--------------------validation_data=validation_generator, verbose=1,
\s--------------------validation_steps=len(fix_y_valid_line_offset), epochs=training_epochs,
\s--------------------callbacks=[EarlyStopping(monitor='val_loss', min_delta=0, patience=0, verbose=0, mode='auto')])

当其他人使用制表符缩进(8个空格)打开此文件时,代码如下所示:

if x_valid_file != None and y_valid_file != None:
\s--mdl.fit_generator(train_generator, steps_per_epoch=len(cp_x_train_line_offset),
\t------\t------\t------validation_data=validation_generator, verbose=1,
\t------\t------\t------validation_steps=len(fix_y_valid_line_offset), epochs=training_epochs,
\t------\t------\t------callbacks=[EarlyStopping(monitor='val_loss', min_delta=0, patience=0, verbose=0, mode='auto')])

导致2个问题。首先,4个空格无法转换为制表符。其次,论点不一致 但是通过我的方式,代码就像这样,这很容易被读作第一个代码块。

if x_valid_file != None and y_valid_file != None:
\t------mdl.fit_generator(train_generator, steps_per_epoch=len(cp_x_train_line_offset),
\t------\s----------------validation_data=validation_generator, verbose=1,
\t------\s----------------validation_steps=len(fix_y_valid_line_offset), epochs=training_epochs,
\t------\s----------------callbacks=[EarlyStopping(monitor='val_loss', min_delta=0, patience=0, verbose=0, mode='auto')])

另一个优点是这种方法可以应用于任何其他编程语言,并且不会破坏代码的结构。
你同意我的观点还是我错了?
注意:我的编辑器是崇高的文字。

0 个答案:

没有答案