Python进阶学习(day6)---面向对象(一)

一、Python的面向对象——类

1、基本格式和方法访问

lass People: #类名(首字母大写)
    # 类属性
    name = "张三" #类型属性 ,公有的
    age = 20
    _sex= "男"  # 保护属性
    __height = 175  # 私有属性

    # 构造函数
    def __init__(self, name, age):# 当对象被创建时就会被调用
        self.name = name
        self.age = age
        print("{}被创建了".format(self.name))

    # 方法
    def say(self): #self 是必须的 --当前对象本身
        print("hello {},我今年{}岁".format(self.name, self.age))

    def selfText(self):
        print("self是什么>>>:",self)

    def introduceself(self):
        print("我的名字是{},性别{},今年{}岁。".format(self.name,self.sex,self.age))

    #析构函数
    def __del__(self):#当一个对象的“引用计数”变成 0,也就是没有人再用这个对象时,它就会被销毁,这时就会自动调用 __del__()。
        print("{}被销毁".format(self.name))

wang = People("王五", 25)  # 实例化对象
zhang = People("张三",24)
# wang.say()  # 调用方法

print("王五:",wang)
wang.sex ="男" #对象属性
wang.introduceself()
wang.selfText()

print("张三:",zhang)
zhang.selfText()

2、构造函数和析构函数

wang = People("王五", 25)  # 实例化对象
zhang = People("张三",24)

运行结果:

结果显示表明:

构造函数:当对象被创建时就会被调用。

析构函数:当一个对象的“引用计数”变成 0,也就是没有人再用这个对象时,它就会被销毁,这时就会自动调用 __del__()。

二、Python面向对象——封装

1、变量访问权限

通过举例说明: 

class People: #类名(首字母大写)
    # 类属性
    name = "张三" #类型属性 没有下划线 是公有的属性
    age = 20
    _sex= "男"  # 保护属性
    __height = 175  # 私有属性

    # 构造方法
    def __init__(self, name, age): # 构造方法
        self.name = name # 实例属性
        self.age = age # 实例属性
    # 方法
    def setheight(self,height):
        self.__height = height # 设置私有属性的值

wang = People("王五", 25)  # 实例化对象
zhang = People("张三",24)

#这种方式不推荐使用
wang._People__height = 190 # 访问私有属性
print(wang._People__height) # 访问私有属性 实际在Python私有属性是通过名称重整来实现的,实际上是将__height改成了_People__height
# 一般通过方法来访问私有属性
wang.setheight(180) # 设置私有属性的值
print(wang._People__height) # 访问私有属性 实际在Python私有属性是通过名称重整来实现的,实际上是将__height改成了_People__height

运行结果:

2、访问权限

属性名写法访问权限是否能被类外访问Python 中的作用
name无下划线公有属性✅ 可以最常用的公开访问属性
_sex单下划线受保护属性✅ 可以(不推荐)是一种开发者的约定,表示内部使用,不强制
__height双下划线私有属性❌ 不能直接访问Python 会自动“改名”为 _Person__height防止外部访问

3、与c++的区别

区别点PythonC++
是否强制❌ 不强制,靠约定✅ 严格控制:外部不能访问 protected/private
访问私有成员可以通过“改名”访问(如 _Person__height完全禁止访问私有成员
开发习惯强调“你应该不访问”强调“你不能访问”

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值