python - 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,因为他们使用 -> 而不是 ::,希望您能帮助我
解决方案
推荐阅读
- pandas - 如何将 csv 文件的列值转换为 pandas 中的不同格式结构?
- javascript - 在工厂函数的console.log中的对象之前显示类名
- range - 如何设置一个不会返回 Nothing 的范围?
- jquery - 选择 .each() 函数在其上运行的元素
- python - 用于从 Windows 机器获取/复制文件的 Python 脚本
- apache-spark - Pyspark - 拆分一列并取 n 个元素
- angular - 试图在 http 拦截器中捕获 401,刷新我的会话并重试原始请求
- postgresql - 如何在 JOOQ 中为 PostgreSQL 编写正确的布尔比较
- pandas - 单击构建的 exe 时,Pyinstaller 返回致命错误
- java - 将对象作为参数而不是单独的变量传递给函数是一种好习惯吗?