python面向对象

本文深入解析Python面向对象编程,涵盖类定义、实例化、类变量、实例变量、继承、多继承、方法重写及私有属性等核心概念,通过实例演示如何在Python中实现面向对象设计。

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

python 面向对象

类:用来描述具有相同的属性和方法的对象。对象是类的实例。
类变量:类变量在整个实例化对象中是公用的。
方法重写:如果从父类继承的方法不能满足子类的需求,可以对其进行改写。
实例变量:定义在方法中的变量,只用于当前实例的类。
继承:一个派生类继承基类的字段和方法。
实例化:类的具体对象。
方法:类中定义的函数。

类定义、实例化类

# 类定义
class Classname:
    pass

# 实例化类
x = Classname()

类变量和实例变量的具体用法:
1、类变量用法如下:

class car: # car 属于类对象
    color = "白色" #类变量:被所有的类对象所共享
    name = "特斯拉"
    speed = "360km/h"

    def run(self):
        print(f'车跑起来了:颜色:{self.color},型号:{self.name}时速:{self.speed}')

c1 = car() # 实例对象
c1.run()
car.color = "蓝色" # 类对象改变变量的值时,所有的对象的颜色都会变成蓝色

2、实例变量用法如下:

class car: # car 属于类对象

    def init(self):
        self.color = "白色"  # 实例变量,为每个实例对象所独有
        self.name = "特斯拉"
        self.speed = "360km/h"
    def run(self):
        print(f'车跑起来了,颜色:{self.color},型号:{self.name}时速:{self.speed}')

c1 = car() #实例对象
c1.init() # 此处需要调用init(),不然会报错,
c1.run()

c1.color = "红色" #不调用init(),直接修改,此处会报错

# 需要调用init() 才能进行修改
c1.init()
c1.color = "红色"
c1.run()

构造方法:init()的用法:

class car: # car 属于类对象

    def __init__(self): #构造方法,用来初始化对象,创建对象时调用
        self.color = "白色"  # 实例变量,为每个实例对象所独有
        self.name = "特斯拉"
        self.speed = "360km/h"
    def run(self):
        print(f'车跑起来了,颜色:{self.color},型号:{self.name}时速:{self.speed}')

c1 = car() #实例对象
c1.run()

self的含义:self代表类的实例对象,可以调用自身的一些属性

类的方法和函数的区别:方法必须有一个参数为self,而函数可以没有参数。
继承:子类继承父类后,会拥有父类中所有的非私有属性和功能。

class person:
    def eat(self):
        print("吃饭")
    def speak(self):
        print("说话")

class student(person): #继承

    def study(self):
        print("读书学习写作业")

class worker(person):#继承
    def work(self):
        print("搬砖")

s1 = student()
w1 = worker()
s1.eat()
s1.speak()
s1.study()
w1.speak()
w1.eat()
w1.work()

多继承:一个子类可以继承多个父类

class animal:
    def eat(self):
        print("吃东西")
class cat:
    def catch_mouse(self):
        print("抓老鼠")

class persian_cat(cat,animal): # 多继承
    def cute(self):
        print("卖萌")
c1 = persian_cat()
c1.eat()
c1.cute()
c1.catch_mouse()

多重继承

# 多重继承
class animal:
    def eat(self):
        print("吃东西")
class cat(animal):
    def catch_mouse(self):
        print("抓老鼠")

class persian_cat(cat): # persian_cat 继承猫类,而猫类又继承动物类
    def cute(self):
        print("卖萌")
c1 = persian_cat()
c1.eat()
c1.cute()
c1.catch_mouse()

方法重写:

class animal:
    def eat(self):
        print("吃东西")

class cat(animal): # 方法的重写
    def eat(self):
        print("吃鱼")
c1 = cat()
c1.eat()

私有属性

class person:
    def __init__(self):
        self.__age=0  # 私有属性
    def pr(self):
        print("您的年龄是:",self.__age)
p1 = person()
p1.__age = 223 # 这个地方不会赋值成功,
p1.pr()

print(p1.__age) #这个地方会报错,私有属性只能在当前类的内部可访问到,

可以定义一个公开的函数来进行年龄修改

class person:
    def __init__(self):
        self.__age=0  # 私有属性
    def pr(self):
        print("您的年龄是:",self.__age)
    def change_age(self,age):
        if 0< age < 120:
            self.__age=age
        else:
            print("年龄不合法")
p1 = person()
p1.change_age(233)
p1.change_age(15)
p1.pr()

异常处理

def mul(a,b):
    try:
        c = a/b
        print(c)
    except ZeroDivisionError:
        print("除数不能为0!")
    except TypeError:
        print("类型不统一!")
    except:
        print("出现未知错误!")

mul(2,3)
mul(2,0) # 除数不能为0
mul('a',1) # 类型不统一
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值