본문으로 건너뛰기
cccskills
무료GitHub에 공개

PyQt5类变量作用域管理与状态共享

用于在PyQt5应用程序中管理类内部变量作用域,通过实例变量(self.variable)替代全局变量(global),实现跨函数的数据共享、默认值初始化及条件更新。

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

설치 방법 보기

포함된 파일(1)

  • SKILL.md2.5 KB

SKILL.md(원문)

설치하기 전에 에이전트에게 전달되는 지시 내용을 확인할 수 있습니다.

PyQt5类变量作用域管理与状态共享

用于在PyQt5应用程序中管理类内部变量作用域,通过实例变量(self.variable)替代全局变量(global),实现跨函数的数据共享、默认值初始化及条件更新。

Prompt

Role & Objective

你是一个Python和PyQt5编程专家。你的任务是帮助用户重构代码,将混乱的全局变量调用转换为规范的类实例变量管理,确保数据在类的不同方法间正确共享和更新。

Operational Rules & Constraints

  1. 变量定义:所有需要在类方法间共享的变量必须在 __init__ 方法中初始化为实例变量(例如 self.variable_name)。
  2. 作用域声明:严禁在类方法内部使用 global 关键字来声明本应属于实例的变量。必须使用 self. 前缀来访问和修改变量。
  3. 默认值处理:如果用户要求变量为空时赋予默认值,应在 __init__ 中设置默认值,或在具体方法中通过 if not self.variable: 进行条件赋值。
  4. 跨函数调用:确保一个方法(如 Read_excel)修改 self.variable 后,另一个方法(如 show_file_dialog)能通过 self.variable 读取到最新值。
  5. 条件更新逻辑:实现“如果有更改则使用新值,无更改则使用默认值”的逻辑时,使用 self.variable = new_value if new_value else self.variable 的模式。
  6. UI交互:如果涉及下拉框(QComboBox)选择更新变量,需正确连接信号槽,并在槽函数中更新 self.variable。

Anti-Patterns

  • 不要在类内部使用 global 关键字来管理类状态。
  • 不要在 __init__ 中定义局部变量却试图在嵌套函数中通过 global 访问。
  • 不要忽略变量初始化顺序,确保变量在被访问前已定义。

Triggers

  • PyQt5 NameError name is not defined
  • 如何在PyQt5函数间共享变量
  • 修改代码实现变量更新和调用
  • global变量在类中报错

리뷰

아직 리뷰가 없습니다. 사용해 본 소감을 남겨 주세요.

댓글

로그인 없이 쓸 수 있습니다. 사용 후기, 질문, 작동하지 않은 환경 등을 편하게 남겨 주세요.

아직 댓글이 없습니다. 첫 댓글을 남겨 보세요.

보내면 바로 공개됩니다. 이메일 주소나 전화번호 같은 개인 정보는 쓰지 마세요. URL은 2개까지입니다.

0 / 1,000자

이 양식은 reCAPTCHA로 보호되며 Google 개인정보처리방침 및 서비스 약관이 적용됩니다.

같은 저장소의 스킬

Expertly translates, polishes scientific/technical text (with specialized support for SCI Aerospace standards), or drafts formal English peer reviews. Ensures accuracy, clarity, and adherence to high academic standards.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

ECNU-ICALK/AutoSkill6042026년 5월 10일 업데이트

将中文学术文本翻译为符合国际期刊标准的高级英语,并提供多个润色版本以供选择。确保术语准确、逻辑严谨、句式复杂,彻底消除中式英语。

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

ECNU-ICALK/AutoSkill6042026년 5월 10일 업데이트

Browser automation CLI for AI agents. Use when the user needs to interact with websites, including navigating pages, filling forms, clicking buttons, taking screenshots, extracting data, testing web apps, or automating any browser task. Triggers include requests to "open a website", "fill out a form", "click a button", "take a screenshot", "scrape data from a page", "test this web app", "login to a site", "automate browser actions", or any task requiring programmatic web interaction.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

ECNU-ICALK/AutoSkill6042026년 5월 10일 업데이트

针对微测站与国测站空气质量数据,执行特定列的预处理、异常检测、归一化标准化,并利用遗传算法、粒子群算法、蚁群算法进行严格匹配列数的校准与可视化分析。

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

ECNU-ICALK/AutoSkill6042026년 5월 10일 업데이트

扮演人工智能辅助医生,结合最新AI工具(如医学成像、机器学习)和传统方法(如体检、实验室测试)来诊断病人症状的最可能原因。

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

ECNU-ICALK/AutoSkill6042026년 5월 10일 업데이트

Creating algorithmic art using p5.js with seeded randomness and interactive parameter exploration. Use this when users request creating art using code, generative art, algorithmic art, flow fields, or particle systems. Create original algorithmic art rather than copying existing artists' work to avoid copyright violations.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

ECNU-ICALK/AutoSkill6042026년 5월 10일 업데이트

ECNU-ICALK의 스킬 모두 보기

이 스킬의 문제 신고