python 类 定义属性_python 类定义和属性

类定义

python是一门面向对象的语言,面向对象最重要的概念就是类(Class)和实例(Instance), 【牢记】类是抽象出来的模版,实例则是根据模版创造出来的对象

类语法 例如:

学生类

class Student(object):

pass

学生实例

stu1 = Student()

绑定属性

通过 __init__方法,在创建实例等时候直接初始化,例如:

class Student(object):

def __init__(self, name, age):

self.name = name

self.age = age

def print_info(self):

print(self.name, self.age)

创建学生实例 绑定属性

stu1 = Student('hd', 21)

实例直接绑定

stu.sex = '男'

数据封装

面向对象编程的另一个重要特点就是数据封装。在上面的Student类中,每个实例就拥有各自的name和age这些数据,我们可以通过函数来访问这些数据。我们可以通过定义的 print_info 函数来打印学生信息,从外部看来我们只需传入学生信息,而如何打印,都是在Student类的内部定义的,这些数据和逻辑被“封装”起来了,调用很容易,但却不用知道内部实现的细节。封装的另一个好处是我们可以对出入的数据进行操作。

类属性的权限

如果要让内部属性不被外部访问,可以把属性的名称前加上两个下划线__,在Python中,实例的变量名如果以__开头,就变成了一个私有变量(private),这样就确保了外部代码不能随意修改对象内部的状态,这样通过访问限制的保护,代码更加健壮。例如:

class Student(object):

def __init__(self, name, age):

self.__name = name

self.__age = age

def print_info(self):

print(self.__name, self.__age)

def set_age(self, age):

self.__age = age

def get_age(self):

return self.__age

stu2 = Student('hd', 21)

stu2.print_info()

print(stu2.__age)# 错误 不允许访问

stu2.__age = 22 #这样是创建新的属性 不建议这么干

print(stu2.__age)# 22

#正确方法 通过设置set和get方法来设置私有属性

stu2.set_age(22)

stu2.print_info()

通过set和get方法设置属性操作虽然麻烦,但我们可以对参数做检查,避免传入错误的参数

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值