【发布时间】:2018-10-24 00:54:00
【问题描述】:
考虑以下几点:
class test:
att = 7
def print_class(class_instance):
print(class_instance.att)
if (__name__ == '__main__'):
t = test()
print_class (t)
print_class 需要一个类 test 实例作为参数,但这不是类型的。
现在我想通过重构 att 来重命名
不过,
打印(class_instance.att)
不会被重命名,因为编辑器不知道这是同一个属性。 这只会在运行时被发现。
有没有办法克服这个问题?
【问题讨论】:
-
您可以使用类型提示(作为注释或在文档字符串中)来告诉 PyCharm 您的期望:jetbrains.com/help/pycharm/type-hinting-in-product.html
-
@jonrsharpe 在这种情况下甚至一个文档字符串就足够了
-
@DeepSpace 文档字符串是一种种类的类型提示,根据我的评论和我链接到的文档。
-
@jonrsharpe 。不确定我是否完全理解,所有表单上的类型提示都被编辑器用于编码目的。解释器不使用它们。我说的对吗?
-
奇怪的是,当它是一种方法时,重构有效,但它不适用于属性。你@jonrsharpe 知道为什么吗?
标签: python refactoring renaming class-attribute