快速概述OOP php到python?

kn3*_*n3l 3 python

我是来自PHP并快速学习OOP Python基础PHP的知识,例如我有一个类

<?php
class Cat{
    private $name;
    private $age;
    private $color;

    public function getName()
    {
        return $this->name;
    }

    public function setName($value)
    {
        $this->name = $value;
    }

    public function getAge()
    {
        return $this->age;
    }

    public function setAge($value)
    {
        $this->age = $value;
    }

    public function getColor()
    {
        return $this->color;
    }

    public function setColor($value)
    {
        $this->color = $value;
    }

}
?>
Run Code Online (Sandbox Code Playgroud)

什么是python OOP代码的等价?

小智 8

class Cat(object):
    def __init__(self, name, age, color):
        self.name = name
        self.age = age
        self.color = color
Run Code Online (Sandbox Code Playgroud)

不,我不是在开玩笑.

  1. 削减getter/setter的东西,我们有属性是有原因的.
  2. 如果你将拥有一个属性,你最好总是拥有它(即从创建开始)或AttributeError随后.即使PHP允许你沉默(Python没有),它们在所有语言中都是"代码味道".
  3. 在Python 2.x中,你需要从object(直接或间接)继承- 否则,你会从过去的旧式类中得到一个令人讨厌的重复.只是不要理会它.在Python 3中,你不需要那个样板文件(旧式类已经消失了,object如果没有别的话,所有东西都会继承).
  4. 这很重要:通过比较几个简短的片段,你不会学习Python(或任何其他语言).在SO上阅读教程,一些真实的代码和Python问题.此外,练习练习并检查代码.