是否有一种方法可以忽略\
的flake8检查代码的一部分?我不能在#noqa
之后添加\
。
例如,这是我的代码。 .config('spark.driver.maxResultSize', os.getenv('spark_driver_max_result_size')) \
超过79个字符
session = SparkSession \
.builder \
.appName(os.getenv('app_name')) \
.config('spark.yarn.queue', os.getenv('spark_yarn_queue')) \
.config('spark.driver.memory', os.getenv('spark_driver_memory')) \
.config('spark.executor.memory', os.getenv('spark_executor_memory')) \
.config('spark.driver.maxResultSize', os.getenv('spark_driver_max_result_size')) \
.enableHiveSupport() \
.getOrCreate()
这行不通。
session = SparkSession \
.builder \
.appName(os.getenv('app_name')) \
.config('spark.yarn.queue', os.getenv('spark_yarn_queue')) \
.config('spark.driver.memory', os.getenv('spark_driver_memory')) \
.config('spark.executor.memory', os.getenv('spark_executor_memory')) \
.config('spark.driver.maxResultSize', os.getenv('spark_driver_max_result_size')) \ # noqa: E501
.enableHiveSupport() \
.getOrCreate()
答案 0 :(得分:3)
您可以将表达式用括号括起来,然后通常在这些括号中使用换行符
session = (SparkSession
.builder
.appName(os.getenv('app_name'))
.config('spark.yarn.queue', os.getenv('spark_yarn_queue'))
.config('spark.driver.memory', os.getenv('spark_driver_memory'))
.config('spark.executor.memory', os.getenv('spark_executor_memory'))
.config('spark.driver.maxResultSize', os.getenv('spark_driver_max_result_size')) # noqa: E501
.enableHiveSupport()
.getOrCreate())
答案 1 :(得分:2)
我建议不要用以下方式打破常规:
session = (SparkSession
.builder
.appName(os.getenv('app_name'))
.config('spark.yarn.queue', os.getenv('spark_yarn_queue'))
.config('spark.driver.memory', os.getenv('spark_driver_memory'))
.config('spark.executor.memory', os.getenv('spark_executor_memory'))
.config('spark.driver.maxResultSize',
os.getenv('spark_driver_max_result_size'))
.enableHiveSupport()
.getOrCreate()
)
包裹长行的首选方法是在括号,方括号和花括号内使用Python的隐含行连续性。通过将表达式包装在括号中,可以将长行分成多行。应该优先使用这些字符,而不是使用反斜杠来继续行。
反斜杠有时仍然合适。例如,长的多个with语句不能使用隐式连续,因此可以使用反斜杠: