python类的静态方法私有方法_求助Python高手,Python里有静态方法和私有方法,这两者有什么区别呢?...

这篇博客探讨了Java和Python中静态变量的共享特性。在Java中,static变量是所有实例共享的,当一个实例修改static变量时,会影响到其他实例。而在Python中,类的静态变量可以通过类名直接修改,影响所有实例,但若通过实例修改,则仅影响该实例。文章通过代码示例清晰地展示了这两种语言在处理静态变量上的差异。
摘要由CSDN通过智能技术生成

不是的,Java中的static也是被实例共享的。public class Dog

{

static String kind = "mammal"

String name = ""

Dog(String name){

this.name = name

}

public static void main(String[] args)

{

Dog wangcai = new Dog("旺财")

Dog bagong = new Dog("八公")

System.out.println(wangcai.kind)

System.out.println(bagong.kind)

wangcai.kind = "test"

// 且Java中是绝对共享的,即一个实例修改static的变量,会影响到其它实例

// 而Python则不是绝对的,在Python中,只有使用类.属性修改才会影响全部, 但是如果同时使用类和实例去修改,则实例的修改会覆盖类的修改。

System.out.println(wangcai.kind)

System.out.println(bagong.kind)

}

}

Python代码如下:class Dog:

kind = 'mammal'  # 类变量被所有实例共享

def __init__(self, name):

self.name = name

wangcai = Dog('旺财')

bagong = Dog('八公')

Dog.kind = 'aaaa'

print(wangcai.kind)  # aaaa

print(bagong.kind)   # aaaa

wangcai.kind = 'test'

print(wangcai.kind)  # test   wangcai.kind覆盖了Dog.kind

print(bagong.kind)   # aaaa

print(wangcai.name)  # 旺财

print(bagong.name)   # 八公

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值