Python 在像c++;

Python 在像c++;,python,python-3.x,python-2.7,variables,Python,Python 3.x,Python 2.7,Variables,在评论建议之前,请阅读底部的注释。问题不在于强类型、动态类型、静态类型的语言等。问题在于开始在程序中的任何地方使用变量,并改变其中一个变量,而不是改变另一个变量将导致巨大的行为变化 如果PyLint或flake8有帮助,请用示例建议配置,以便我更容易实现。 如果我能做一些类似于类型暗示的事情,看起来比pylint或flake 8更像语法错误,那就太好了。pylint或flake 8是通过稍后运行来检查类似的测试来完成的 在Python中使用的变量如下: def func(): is_na

在评论建议之前,请阅读底部的注释。问题不在于强类型、动态类型、静态类型的语言等。问题在于开始在程序中的任何地方使用变量,并改变其中一个变量,而不是改变另一个变量将导致巨大的行为变化

如果
PyLint
flake8
有帮助,请用示例建议配置,以便我更容易实现。
如果我能做一些类似于类型暗示的事情,看起来比pylint或flake 8更像语法错误,那就太好了。pylint或flake 8是通过稍后运行来检查类似的测试来完成的

在Python中使用的变量如下:

def func():
    is_name_appropriate = False
    while not is_name_appropriate:
        print("Hello World")
        is_name_appropriate = True

func()


**Output :**
Hello World
void func() 
{
    bool is_name_appropriate = false;
    while (is_name_appropriate != True)
    {
        cout<<"Hello World";
        is_name_appropriate = true;
    }
}

func();



**Output :**
Hello World
<>强> C++中使用的变量如下:< /强>

def func():
    is_name_appropriate = False
    while not is_name_appropriate:
        print("Hello World")
        is_name_appropriate = True

func()


**Output :**
Hello World
void func() 
{
    bool is_name_appropriate = false;
    while (is_name_appropriate != True)
    {
        cout<<"Hello World";
        is_name_appropriate = true;
    }
}

func();



**Output :**
Hello World
我的程序有30000行代码,很难记住变量的使用位置。重构是非常必要的,所以重构是不可能的

我使用PyCharm Propression Edition作为IDE,但要重构一个使用次数超过50次的名称仍然很困难


注意:上面的代码只是一个示例,实际代码在这里发布非常复杂请不要建议删除上面的while循环。理解这个问题。我也不能更改语言,因为程序中特别需要python,所以请不要这样建议单元测试在这里没有帮助。对不起,伙计们。这里使用BDD。

我建议添加到代码中,并使用它进行静态类型检查。我发现,在维护和重构大型Python代码库时,这将改变游戏规则。请参阅,以获取详细的工作原理示例

诚然,键入提示并不能解决您所询问的有关在何处重命名局部变量的特定问题。

name\u重构是否合适=False#更改了变量名
虽然不是,但重构后的变量名是否合适:#更改上面初始化的变量名
打印(“你好世界”)
_name_property=True#忘记更改此项。我不使用IDE。终点站太棒了!!!
类型提示是可选的,这是由设计决定的。它允许您在MyPy可以推断类型的地方省略它们,并且还允许您将类型提示逐渐引入现有的代码库。然而,这确实意味着,即使您在
is\u name\u refactured\u apprope
上添加了类型提示,MyPy也不会在您指定给
is\u name\u approproprope
的行上给您一个错误,因为它认为您想要创建一个新变量

然而,重命名局部变量通常不是重构的大障碍,因为它们只能从它们所使用的函数中引用。如果重命名局部变量,唯一可能中断的是它所使用的函数。这意味着,即使是简单的文本搜索和替换也是更改本地变量名称的有效方法

例如,重命名属性或方法问题更大,因为它们可能在程序中的任何位置被引用。例如,如果您试图访问一个不存在的属性或调用一个不存在的方法,MyPy将给您带来错误。这些是需要捕获的真正重要的错误,因为它们本质上是全局性的:如果您重命名一个属性或方法,程序的任何部分都可能会发生故障


要将类型提示添加到现有项目中,我将采取将它们引入到您将要重构的区域的方法,因此需要防止破坏。这确保了您通过引入类型提示所做的工作能够立即获得回报。

pylint
应该能够发现这样的错误,并且可能还可以将
PyCharm
配置为发现该错误?可以动态添加变量,因此编译器无法知道存在问题。一些IDE和Linter标记了这类东西,所以这很有帮助。更改变量名时,显示所有发生情况的灰色工具会有所帮助。但最终,重构从单元测试开始,然后是代码更改。如果这个名称在其他模块中被引用,并且或多或少是API公开签名的一部分,请不要更改它。50%的重构是个坏主意。如果它没有损坏…@KenY-N PyCharm会发现它,但有时不可能将其损坏,因为它需要手动检查和确认。尤其是当代码庞大时。派林克看起来令人满意。谢谢,我不确定我是否理解这个问题。是否手动编辑变量名的每个实例?为什么不能在编辑器中使用find/replace?PyCharm中没有吗?