一段很有意思的代码

class Championship:
    def __init__(self):
        self.teams = 0

    def matches_count(self):
        return self.teams * (self.teams - 1) / 2

    def add_new_team(self):
        self.teams += 1

def team_matches(champ):
    champ.teams() - 1

class Company:
    def __init__(self, t):
        self.teams = t

def company_members(company):
    map(lambda team : team.name, company.teams)

def teams():
    return 16

c = Championship()

c.teams = teams()

print(c.teams)

在pycharm的官方教学里看到的
那一节是refactor里的rename,感兴趣可以调出来自己试一下。
这段代码里有一个变量是teams
现在要对这个变量重命名
在shift+F6以后,弹出了重命名窗口,之后下面有一个小窗
可以选择删除的变量

一个很有意思的点在于,整个代码有很多个teams,重命名选项并不能选中所有

细看可以发现,有两个类都声明了teams这个变量

二者互不干扰

类之外,有实例化的Championship

如果要对这个实例中的teams重命名,当然会涉及到类声明里的teams(属性),而不会波及到Company里面的属性声明

令人意外的是,两个函数中的属性也会变化

这是因为,函数的输入参数,没有确定是哪个类,因此无论是修改两个类声明中的哪一个,这两个函数都有可能波及到

如果要对当前文本所有同名变量修改(包含该名字的也算),可以直接用 alt + ctrl + shift + J,选中所有。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值