Python_面向对象编程

本文详细介绍了Python中的类与对象概念,包括字段、方法、实例变量、类变量等基本属性,探讨了self参数的作用及其实现原理,并展示了__init__方法的使用方式。此外,还讨论了类变量与对象变量的区别、装饰器的应用、私有变量的概念以及继承和多重继承的实现。

字段(Field)和方法(Method)称为类的属性(Attribute)。

实例对象(Instance Variables),类变量(Class Variables)

self

Python如何给self赋值?

假设一个MyClass类,这个类有一个实例myobject。当你调用myobject.method(arg1, arg2)时,Python将会自动将其转换成MyClass.method(myobject, arg1, arg2)——这就是self的全部特殊之处所在。


__init__方法

在类的对象被实例化时立即运行。

我们不会显式地调用__init__方法。这正是这个方法的特殊之处所在。

class Person:
    def __init__(self, name):
        self.name = name

    def say_hi(self):
        print('Hello, my name is', self.name)


p = Person('Swaroop')
p.say_hi()

输出:Hello, my name is Swaroop


类变量与对象变量

字段——绑定到类与对象的命名空间(Namespace)的普通变量,仅在这些类与对象所存在的上下文中有效。这就是它们被称作“命名空间”的原因。

字段有两种类型:类变量和对象变量

通过self分配是对象变量。

当一个对象变量与一个类变量名称相同时,类变量将会被隐藏。

使用装饰器(Decorator)将方法标记为类方法:@classmethod

所有的类成员都是公开的,但有一个例外:如果你使用数据成员并在名字中使用双下划线作为前缀,形如_privatervar这样的形式,Python会使用名称调整来使其有效地成为一个私有变量。


继承

如果在子类中定义了__init__方法,Python不会自动调用基类的构造方法,必须自己显式地调用它。

可以通过在方法名前面加上类名作为前缀,再将其传入self和其余变量中来调用基类的方法。

支持多重继承

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值