Python类属性与PHP静态类属性有何不同?

2024-03-29 08:28:17 发布

您现在位置:Python中文网/ 问答频道 /正文

表面上的Python类属性和PHP静态类属性似乎功能相同(不包括PHP中添加可见性public/protected/private的功能)。你知道吗

静态或属性的使用:

  • 绑定到类而不是实例
  • 必须在运行时进行评估
  • 如果您依赖于类方法定义中的任何一个,您将很难实现该方法测试的完全覆盖。你知道吗

我的问题是,我遗漏了什么重要的区别。你知道吗


Tags: 实例方法功能属性定义静态privatepublic
1条回答
网友
1楼 · 发布于 2024-03-29 08:28:17

在python实例中查找与class变量同名的属性时,它将提供class变量。你知道吗

在PHP中。。。你知道吗

class C 
{
    static $foo = 42;
}

$i = new C();
var_dump($i->foo);  // null, plus a notice

在Python中。。。你知道吗

class C:
    foo = 42

i = C()
print(i.foo)  # 42

更有趣的是。。。你知道吗

class C:
    foo = []

a = C()
b = C()
c = C()

a.foo = ['hello']
b.foo.append('world')

print(C.foo) # ['world']

print(a.foo) # ['hello']
print(b.foo) # ['world']
print(c.foo) # ['world']

换句话说,在Python中使用类变量时要非常小心。你知道吗

相关问题 更多 >