python_的面向对象编程
废话不多说,先弄个对象来看看
class Student(object):
def __init__(self, name, score):
self.name = name
self.score = score
def print_score(self):
print('name: %s score : %s' %(self.name, self.score))
#赋值
shb = Student('shb', 99)
#调用对象的方法
shb.print_score()
打印:
name: shb score : 99
私有属性,在属性名称前加上2个下划线__,只有内部可以访问,外部不能访问;
#面向对象编程
class Student(object): def __init__(self, name, score):
self.__name = name
self.score = score def print_score(self):
print('name: %s score : %s' %(self.__name, self.score)) #赋值
shb = Student('shb', 99)
#调用对象的方法
shb._name
打印:
AttributeError: 'Student' object has no attribute '_name'
那如果变量变成私有的了,如何访问和设置类中的属性呢 - 通过set 和 get 方法
#面向对象编程
class Student(object):
def __init__(self, name, score):
self.__name = name
self.__score = score def set_score(self, score):
self.__score = score def set_name(self, name):
self.__name = name def get_name(self):
return self.__name def get_score(self):
return self.__score def print_score(self):
print('name: %s score : %s' %(self.__name, self.__score)) #赋值
shb = Student('shb', 27)
#重新设置score值
shb.set_score(299)
print(shb.get_name(), shb.get_score())
打印:
shb 299
获取对象属性的类型函数: type()
获取对象的所有属性的类型函数: type()
#面向对象编程
class Student(object):
def __init__(self, name, score):
self.__name = name
self.__score = score def set_score(self, score):
self.__score = score def set_name(self, name):
self.__name = name def get_name(self):
return self.__name def get_score(self):
return self.__score def print_score(self):
print('name: %s score : %s' %(self.__name, self.__score)) #赋值
shb = Student('shb', 27)
#重新设置score值
shb.set_score(299)
print(shb.get_name(), shb.get_score(), type(shb.get_score()),'\n', dir(shb))
打印:
#面向对象编程
class Student(object):
def __init__(self, name, score):
self.__name = name
self.__score = score def set_score(self, score):
self.__score = score def set_name(self, name):
self.__name = name def get_name(self):
return self.__name def get_score(self):
return self.__score def print_score(self):
print('name: %s score : %s' %(self.__name, self.__score)) #赋值
shb = Student('shb', 27)
#重新设置score值
shb.set_score(299)
print(shb.get_name(), shb.get_score(), type(shb.get_score()),'\n', dir(shb))
python_的面向对象编程的更多相关文章
- python_面向对象编程
一.编程范式 程序员通过特定的语法+数据结构+算法告诉计算机如果执行任务,实现这个过程有不同的编程方式,对这些不同的编程方式进行归纳总结得出来的编程方式类别,即为编程范式 编程范式:面向过程编程.面向 ...
- angular2系列教程(六)两种pipe:函数式编程与面向对象编程
今天,我们要讲的是angualr2的pipe这个知识点. 例子
- 带你一分钟理解闭包--js面向对象编程
上一篇<简单粗暴地理解js原型链--js面向对象编程>没想到能攒到这么多赞,实属意外.分享是个好事情,尤其是分享自己的学习感悟.所以网上关于原型链.闭包.作用域等文章多如牛毛,很多文章写得 ...
- PHP 面向对象编程和设计模式 (1/5) - 抽象类、对象接口、instanceof 和契约式编程
PHP高级程序设计 学习笔记 2014.06.09 什么是面向对象编程 面向对象编程(Object Oriented Programming,OOP)是一种计算机编程架构.OOP 的一条基本原则是计算 ...
- Delphi_09_Delphi_Object_Pascal_面向对象编程
今天这里讨论一下Delphi中的面向对象编程,这里不做过多过细的讨论,主要做提纲挈领的描述,帮助自己抓做重点. 本随笔分为两部分: 一.面向对象编程 二.面向对象编程详细描述 ------------ ...
- python基础-面向对象编程
一.三大编程范式 编程范式即编程的方法论,标识一种编程风格 三大编程范式: 1.面向过程编程 2.函数式编程 3.面向对象编程 二.编程进化论 1.编程最开始就是无组织无结构,从简单控制流中按步写指令 ...
- 面向对象编程(OOP)
什么是面向对象编程,对于面向对象编程与面向过程编程的解释随处可见,个人认为对面向对象编程解释最好的一个定义是:依赖倒转原则是面向对象编程的标志,面向对象编程是一种思想,无论使用哪一种编程语言,如果在编 ...
- python 学习笔记7 面向对象编程
一.概述 面向过程:根据业务逻辑从上到下写垒代码 函数式:将某功能代码封装到函数中,日后便无需重复编写,仅调用函数即可 面向对象:对函数进行分类和封装,让开发"更快更好更强..." ...
- 进击的Python【第七章】:Python的高级应用(四)面向对象编程进阶
Python的高级应用(三)面向对象编程进阶 本章学习要点: 面向对象高级语法部分 静态方法.类方法.属性方法 类的特殊方法 反射 异常处理 Socket开发基础 一.面向对象高级语法部分 静态方法 ...
随机推荐
- Spring Boot 调用 MongoRepository时报org.springframework.beans.factory.NoSuchBeanDefinitionException错误的解决办法
这个问题整整折腾了我两天,现在记录下来,希望可以帮助和我一样,遇到相同问题的小伙伴. 项目是分层的(Intellij IDEA中的模块Module),有API(Core)层,Service&D ...
- github控件地址
地址: https://github.com/wasabeef/awesome-android-ui http://www.jcodecraeer.com/plus/list.php?tid=31 h ...
- Java分布式集群,使用synchronized和Redis保证Job的原子性
1.使用synchronized保证并发时,同时只会有一个请求执行该代码段: 2.在执行前先设置并获取Reids标记,先设置然后获取确保是否已经执行:SetOption.SET_IF_ABSENT 可 ...
- javassist实例
我们常用到的动态特性主要是反射,在运行时查找对象属性.方法,修改作用域,通过方法名称调用方法等.在线的应用不会频繁使用反射,因为反射的性能开销较大.其实还有一种和反射一样强大的特性,但是开销却很低,它 ...
- shadowMap
采用PCF软化阴影,感觉还是不够柔软
- ThinkPHP3.2.3框架下接入阿里云短信服务接口实现:注册登录
首先介绍下短信注册登录流程: 注册页面点击获取手机号验证码按钮,用jquery的click事件POST或GET方法把手机号发送到后台控制器: 后台控制器创建函数,收到手机号后生成随机码,例如:6位的随 ...
- Centos6.8 安装dlib库时出错【升级gcc 到4.9.0以上】
在centos6.8上安装dlib库时出现错误: 1.CMake must be installed to build the following extensions: dlib 没有安装CMake ...
- K - Popular Cows
来源poj2186 Every cow's dream is to become the most popular cow in the herd. In a herd of N (1 <= N ...
- npm安装插件
参考:https://www.cnblogs.com/ayseeing/p/3624058.html
- pushd和popd
[原文地址] 其实,很早就知道pushd和popd在linux中可以用来方便地在多个目录之间切换.那时比较浮躁,感觉切换目录没必要这么复杂.在实际中,发现通过使用pushd和popd能够极大地提高 ...