首页 > 解决方案 > Python中PHP的 :: 相当于什么?

问题描述

我一直在阅读有关 :: 的 PHP 文档,它的定义是“允许访问静态元素、常量和覆盖类的属性或方法的令牌。”,简单来说,它用于覆盖、访问方法或属性,这就是我所理解的一个例子:

示例 1:

PHP

<?php
class MyClass {
    const CONST_VALUE = 'A constant value';
}

$classname = 'MyClass';
echo $classname::CONST_VALUE; // A partir de PHP 5.3.0

echo MyClass::CONST_VALUE;
?>
Python 

class MyClass:
    CONST_VALUE= "A constant value"

classname=MyClass()
    print(classname.CONST_VALUE)
    print(MyClass.CONST_VALUE)

示例 2:

PHP

<?php
class OtherClass extends MyClass
{
    public static $my_static = 'static variable';

    public static function doubleColon() {
        echo parent::CONST_VALUE . "\n";
        echo self::$my_static . "\n";
    }
}

$classname = 'OtherClass';
$classname::doubleColon(); // Since PHP 5.3.0

OtherClass::doubleColon();

?> 
Python
class OtherClass(MyClass):
   my_static = 'static variable'

   def doubleColon(self):
        print( self.CONST_VALUE)
        print( self.my_static)

classname = OtherClass()
print(classname.doubleColon()) #This print None
print(OtherClass.doubleColon(classname)) #This print None  

示例 3:

PHP
<?php
class MyClass
{
    protected function myFunc() {
        echo "MyClass::myFunc()\n";
    }
}

class OtherClass extends MyClass
{
    public function myFunc()
    {
        parent::myFunc();
        echo "OtherClass::myFunc()\n";
    }
}

$class = new OtherClass();
$class->myFunc();
?>
python

class MyClass:
    def myFunc(self): 
        print("MyClass.myFunc()")
    

class OtherClass(MyClass):
    def myFunc(self):
        super().myFunc()
        print ("OtherClass.myFunc()")

classname = OtherClass()
classname.myFunc()

python中的代码完全对应PHP的代码吗?如果我错了或可以更改某些内容,请告诉我。基于示例 3,因为他们使用 -> 而不是 ::,希望您能帮助我

标签: pythonphp

解决方案


推荐阅读