没有合适的资源?快使用搜索试试~ 我知道了~
Python 面向对象编程:类的创建与初始化、实例属性与方法、类属性与方法
11 下载量 158 浏览量
2020-12-21
09:10:45
上传
评论
收藏 53KB PDF 举报
温馨提示
试读
2页
1. 类的创建并实例化 类的定义:在Python中,类通过 class 关键字定义。按照 Python 的编程习惯,类名以大写字母开头,紧接着是(object),表示该类是从哪个类继承下来的。下面是一个简单的类创建并实例化: class Person(object): pass sqz = Person() 属性赋值:由于Python是动态语言,对每一个实例,都可以直接给他们的属性赋值: sqz.name = 'Sunqz' sqz.age = 18 属性初始化:虽然我们可以自由地给一个实例绑定各种属性,但是,现实世界中,一种类型的实例应该拥有相同名字的属性。在定义 Person
资源推荐
资源详情
资源评论
Python 面向对象编程:类的创建与初始化、实例属性与方面向对象编程:类的创建与初始化、实例属性与方
法、类属性与方法法、类属性与方法
1. 类的创建并实例化类的创建并实例化
类的定义类的定义:在Python中,类通过 class 关键字定义。按照 Python 的编程习惯,类名以大写字母大写字母开头,紧接着是(object),表示该
类是从哪个类继承下来哪个类继承下来的。下面是一个简单的类创建并实例化:
class Person(object):
pass
sqz = Person()
属性赋值属性赋值:由于Python是动态动态语言,对每一个实例,都可以直接直接给他们的属性赋值:
sqz.name = 'Sunqz'
sqz.age = 18
属性初始化属性初始化:虽然我们可以自由地给一个实例绑定各种属性,但是,现实世界中,一种类型的实例应该拥有相同名字的属性。
在定义 Person 类时,可以为Person类添加一个特殊的__init__()方法,当创建实例时,__init__()方法被自动调用自动调用,我们就能在此
为每个实例都统一加上以下属性:
class Person(object):
def __init__(self, name, gender, birth, **kw):
self.name = name
self.gender = gender
self.birth = birth
for key, value in kw.items(): # **kw 表示接受任意长度参数,以字典形式存储
setattr(self, key, value) # 使用 setattr(self, name, ***) 设置属性
sqz = Person('Sun qz', 'Male', '1996-1-1', job='Student')
print sqz.name
print sqz.job
属性访问限制属性访问限制:Python对属性权限的控制是通过属性名属性名来实现的,如果一个属性由双下划线双下划线开头__**,该属性就无法被外部访
问。
class Person(object):
def __init__(self, name, score):
self.name = name
self.__score = score
p = Person('Bob', 59)
print p.name
print p.__score # 报错AttributeError: 'Person' object has no attribute '__score' Bob
但是,如果一个属性以”__xxx__“的形式定义,那它又可以被外部访问了,以”__xxx__“定义的属性在Python 的类中被称为特殊属
性,有很多预定义的特殊属性可以使用,通常我们不要把普通属性用”__xxx__“定义。
以单下划线开头的属性”_xxx“虽然也可以被外部访问,但是,按照习惯,他们不应该被外部访问他们不应该被外部访问。
创建类属性创建类属性:绑定在一个实例上的属性不会影响其他实例,但是,类本身也是一个对象,如果在类上绑定一个属性,则所有实
例都可以访问类的属性,并且,所有实例访问的类属性都是同一个!也就是说,实例属性每个实例各自拥有,互相独立,而类实例属性每个实例各自拥有,互相独立,而类
属性有且只有一份属性有且只有一份。
class Person(object):
count = 0 # 类属性
def __init__(self, name):
self.name = name
Person.count += 1 # 通过类名字调用类属性并修改,所有实例进行访问都是修改之后的值
p1 = Person('Bob')
print Person.count # 1 正常调用类属性
print p1.count # 1 为实例创建了一个和类属性同名的属性
p1.count += 1
print p1.count # 2 修改实例属性,对类属性无影响,通过实例访问同名属性,优先访问的是实例属性
print Person.count # 1
定义实例方法定义实例方法:实例的方法就是在类中定义的函数,它的第一个参数永远是 self,指向调用该方法的实例本身,其他参数和一
个普通函数是完全一样。在实例方法内部,可以访问所有实例属性可以访问所有实例属性,这样,如果外部需要访问私有属性,可以通过方法调用获外部需要访问私有属性,可以通过方法调用获
资源评论
weixin_38609720
- 粉丝: 3
- 资源: 983
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 论文(最终)_20240430235101.pdf
- 基于python编写的Keras深度学习框架开发,利用卷积神经网络CNN,快速识别图片并进行分类
- 最全空间计量实证方法(空间杜宾模型和检验以及结果解释文档).txt
- 5uonly.apk
- 蓝桥杯Python组的历年真题
- 2023-04-06-项目笔记 - 第一百十九阶段 - 4.4.2.117全局变量的作用域-117 -2024.04.30
- 2023-04-06-项目笔记 - 第一百十九阶段 - 4.4.2.117全局变量的作用域-117 -2024.04.30
- 前端开发技术实验报告:内含4四实验&实验报告
- Highlight Plus v20.0.1
- 林周瑜-论文.docx
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功