上移成员、下移成员
向上拉取成员 重构允许您将类成员移动到超类。
向上拉取成员 重构可以创建抽象方法。 如果项目使用 Python 2.x 解释器,则只有实例方法可以抽象化。 如果项目使用 Python 3.x,则任何方法都可以抽象化。
请注意,PyCharm 会自动添加抽象方法所需的 import 语句。
向下推送成员 重构通过将类成员移动到子类来帮助清理类层次结构。 随后,这些成员仅会移动到直接子类中。
上移成员
选择要将其成员上移到超类的类。
从主菜单或上下文菜单中,调用 。 将显示 上移成员 对话框。
选择目标对象(超类)。
在 成员 部分,选择要移动的成员。
要以抽象方法的形式移动某个方法,请选中该方法旁边的 设为抽象 列中的复选框。
点击 重构 ,将所选成员上移到目标位置。
之前 | 之后 |
|---|---|
class SuperClass:
def super_method(self):
pass
class SubClassOne(SuperClass):
def my_method(self):
pass
|
class SuperClass:
def super_method(self):
pass
def my_method(self):
pass
class SubClassOne(SuperClass):
pass
|
下移成员
在编辑器中,打开其成员需要下移的类。
从主菜单或上下文菜单中,选择 。 下移成员对话框 会显示要下移的成员列表。
在 要下移的成员 区域,选择要移动的成员。 请注意,插入符号处的成员已被选中。
如果下移某个成员可能导致问题,将用红色高亮提示您。 这意味着如果不处理该情况,重构后会出现错误。 PyCharm 会显示检测到的问题对话框,您可以选择忽略或修复问题。
预览并应用更改。
之前 | 之后 |
|---|---|
class SuperClass:
def super_method(self):
pass
class SubClassOne(SuperClass):
def my_method(self):
pass
class SubClassTwo(SuperClass):
def my_method(self):
pass
|
class SuperClass:
pass
class SubClassOne(SuperClass):
def my_method(self):
pass
def super_method(self):
pass
class SubClassTwo(SuperClass):
def my_method(self):
pass
def super_method(self):
pass
|
最后修改日期: 2025年 12月 2日