首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何处理R0915: pylint中的语句太多(69/50) (太多语句)?

如何处理R0915: pylint中的语句太多(69/50) (太多语句)?
EN

Stack Overflow用户
提问于 2021-09-22 20:23:34
回答 1查看 218关注 0票数 1

我在PyQt5中有一个Python代码(带有多个图形项的图形用户界面)。如何缩短代码以适应每个函数50条PEP8语句的建议?是否适合将图形项的定义分解为多个函数?

代码语言:javascript
复制
    def __init__(self, pulse_number, on_time, off_time, x, y, offset):
        self.offset = offset
        self.laser_pulse_n = pulse_number
        self.laser_on_time = on_time
        self.laser_off_time = off_time
        self.laser_x_loc = x
        self.laser_y_loc = y
        # set window properties
        self.setMinimumSize(QSize(250, 300))
        self.setWindowTitle("Laser settings")

        self.int_validator = QIntValidator()

        # LASER
        # Create pulse number label
        self.pulse_number_label = QLabel(self)
        self.pulse_number_label.setGeometry(QRect(10, 0, 80, 20))
        self.pulse_number_label.setText("Pulse n.:")

        # Create pulse number input box
        self.pulse_number_input = QLineEdit(self)
        self.pulse_number_input.setGeometry(QRect(60, 0, 40, 20))
        self.pulse_number_input.setText(str(self.laser_pulse_n))
        self.pulse_number_input.setValidator(self.int_validator)

        # Create laser on label...
        
        ...

        # Apply button
        self.validate_button = QPushButton(self)
        self.validate_button.setGeometry(QRect(10, 240, 230, 40))
        self.validate_button.setToolTip("Click to save settings")
        self.validate_button.setFont(QFont('Times', 20))
        self.validate_button.setText("Apply")
        self.validate_button.clicked.connect(self.validate_settings)
EN

回答 1

Stack Overflow用户

发布于 2021-09-22 21:21:15

在我看来,有两种解决方案:你可以禁用这个警告,因为PyQT迫使你像这样编写代码。在构造函数中定义每个属性会更清楚,如果你创建子函数,你会得到一个attribute-defined-outside-init警告。另一种解决方案是稍微重构一下,然后创建一个属性设置器或一个用于设置对象的函数。

例如,从这个开始:

代码语言:javascript
复制
        ...
        self.validate_button = QPushButton(self)
        self.validate_button.setGeometry(QRect(10, 240, 230, 40))
        self.validate_button.setToolTip("Click to save settings")
        self.validate_button.setFont(QFont('Times', 20))
        self.validate_button.setText("Apply")
        self.validate_button.clicked.connect(self.validate_settings)

要这样做:

代码语言:javascript
复制
        ...
        self.validate_button = self.validate_settings


    @property
    def validate_button(self):
        return self.__validate_button

    @validate_button.setter
    def validate_button(self, validate_settings):
        self.__validate_button = QPushButton(self)
        self.__validate_button.setGeometry(QRect(10, 240, 230, 40))
        self.__validate_button.setToolTip("Click to save settings")
        self.__validate_button.setFont(QFont('Times', 20))
        self.__validate_button.setText("Apply")
        self.__validate_button.clicked.connect(validate_settings)

这样做的好处是可以在以后需要时更改属性。

或者这样:

代码语言:javascript
复制
        ...
        self.validate_button = QPushButton(self)
        self.__init_validate_button()

    def __init_validate_button(self):
        self.validate_button.setGeometry(QRect(10, 240, 230, 40))
        self.validate_button.setToolTip("Click to save settings")
        self.validate_button.setFont(QFont('Times', 20))
        self.validate_button.setText("Apply")
        self.validate_button.clicked.connect(self.validate_settings)

它允许类保持不可变。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69290847

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档