Python2语法简记(8):类

本文深入探讨Python中的类与对象概念,包括类变量、实例变量、类方法、实例方法和静态方法的区别与应用。解析类变量与实例变量的作用域,以及如何通过不同方式访问它们。同时,介绍了类的继承与方法重写,展示了Python面向对象编程的基本原理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

8 类

类变量(变量名前加 类名. 或cls. 或self.来访问)、实例变量(在实例方法中定义,变量名前加 self.来访问)、类方法、实例方法、静态方法
class Animal: # 类对象
age = 0 # 类变量

    def __init__(self, name): # 魔法方法
        self.name = name  # 实例变量

    def smile(self): # 实例方法。 self指向实例对象
        print self.age # 访问类变量
        self.age = 10 # 定义实例变量。这时候实例对象的__dict__字典中已经存在了age这个属性。
        print self.age # 访问实例变量

    @classmethod
    def run(cls): # 类方法。cls 指向类对象
        pass

    @staticmethod
    def msg(): # 静态方法,可以没有参数
        pass

类变量:所有实例化对象中是公用的。在类方法中通过“类名.变量名”, "cls.变量名"访问,在实例方法中通过“self.变量名”访问。
实例变量:定义在方法中的变量,只作用于当前实例的类。在实例方法中通过“self.变量名”定义后再访问,如果不定义直接访问,访问的是类变量。

创建实例对象:a = Bird(‘Tom’),不支持new
animal1 = Animal(‘Tom’)。不支持new。

类的继承:与C++类似,支持继承、多重继承
继承、多重继承、方法重写 与C++类似。

class Parent:        # 定义父类
    def myMethod(self):
        print '调用父类方法'
class Child(Parent): # 定义子类
    def myMethod(self):
        print '调用子类方法'
c = Child()          # 子类实例
c.myMethod()         # 子类调用重写方法

单下划线、双下划线、头尾双下划线说明:控制访问权限,特殊方法

  • foo: 定义的是特殊方法,一般是系统定义名字 ,类似 init() 之类的。

  • _foo: 以单下划线开头的表示的是 protected 类型的变量,即保护类型只能允许其本身与子类进行访问,不能用于 from module import *

  • __foo: 双下划线的表示的是私有类型(private)的变量, 只能是允许这个类本身进行访问了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值