废话不多说,先弄个对象来看看

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_的面向对象编程的更多相关文章

  1. python_面向对象编程

    一.编程范式 程序员通过特定的语法+数据结构+算法告诉计算机如果执行任务,实现这个过程有不同的编程方式,对这些不同的编程方式进行归纳总结得出来的编程方式类别,即为编程范式 编程范式:面向过程编程.面向 ...

  2. angular2系列教程(六)两种pipe:函数式编程与面向对象编程

    今天,我们要讲的是angualr2的pipe这个知识点. 例子

  3. 带你一分钟理解闭包--js面向对象编程

    上一篇<简单粗暴地理解js原型链--js面向对象编程>没想到能攒到这么多赞,实属意外.分享是个好事情,尤其是分享自己的学习感悟.所以网上关于原型链.闭包.作用域等文章多如牛毛,很多文章写得 ...

  4. PHP 面向对象编程和设计模式 (1/5) - 抽象类、对象接口、instanceof 和契约式编程

    PHP高级程序设计 学习笔记 2014.06.09 什么是面向对象编程 面向对象编程(Object Oriented Programming,OOP)是一种计算机编程架构.OOP 的一条基本原则是计算 ...

  5. Delphi_09_Delphi_Object_Pascal_面向对象编程

    今天这里讨论一下Delphi中的面向对象编程,这里不做过多过细的讨论,主要做提纲挈领的描述,帮助自己抓做重点. 本随笔分为两部分: 一.面向对象编程 二.面向对象编程详细描述 ------------ ...

  6. python基础-面向对象编程

    一.三大编程范式 编程范式即编程的方法论,标识一种编程风格 三大编程范式: 1.面向过程编程 2.函数式编程 3.面向对象编程 二.编程进化论 1.编程最开始就是无组织无结构,从简单控制流中按步写指令 ...

  7. 面向对象编程(OOP)

    什么是面向对象编程,对于面向对象编程与面向过程编程的解释随处可见,个人认为对面向对象编程解释最好的一个定义是:依赖倒转原则是面向对象编程的标志,面向对象编程是一种思想,无论使用哪一种编程语言,如果在编 ...

  8. python 学习笔记7 面向对象编程

    一.概述 面向过程:根据业务逻辑从上到下写垒代码 函数式:将某功能代码封装到函数中,日后便无需重复编写,仅调用函数即可 面向对象:对函数进行分类和封装,让开发"更快更好更强..." ...

  9. 进击的Python【第七章】:Python的高级应用(四)面向对象编程进阶

    Python的高级应用(三)面向对象编程进阶 本章学习要点: 面向对象高级语法部分 静态方法.类方法.属性方法 类的特殊方法 反射 异常处理 Socket开发基础 一.面向对象高级语法部分 静态方法 ...

随机推荐

  1. vs2017离线安装且安装包不占用C盘空间

    [参考]vs2017离线安装且安装包不占用C盘空间 第一步:下载离线安装包 https://www.visualstudio.com/zh-hans/downloads/ 在官方地址下载vs_prof ...

  2. ABBYY PDF Transformer+安装教程

    ABBYY PDF Transformer+是一个新的全功能PDF文档工具,涵盖整个文档生命周期所涉及的各项功能,包括创建.讨论.批准.保护.转换成可编辑格式的PDF文件.文件合并.文本和图像的提取等 ...

  3. 手写一个selenium浏览器池

    维护一组浏览器,实现每分钟1000次查询.DriverPool使用变幻版只初始化一次的单例模式.维护每个浏览器的当前是否使用的状态. 不需要等待请求来了,临时开浏览器,开一个浏览器会耽误6秒钟. 可以 ...

  4. How to do sparse input text classification(dnn) using tensorflow

    You can get complete example code from https://github.com/chenghuige/hasky/tree/master/applications ...

  5. Go VSCode配置编译task

    菜单栏Tasks->Configure Tasks { "version": "2.0.0", "tasks": [ { " ...

  6. ubuntu百度云下载大文件

    一.实验环境 ubuntu16.04 + 百度在线云盘 二.下载小文件步骤 小文件直接点击右侧的下载按钮即可,弹出文件保存对话框 三.大文件下载步骤 大文件使用如上方式下载时提示,请使用网盘客户端下载 ...

  7. Go语言基础之数据类型

    Go语言基础之数据类型 Go语言中有丰富的数据类型,除了基本的整型.浮点型.布尔型.字符串外,还有数组.切片.结构体.函数.map.通道(channel)等.Go 语言的基本类型和其他语言大同小异. ...

  8. 山东省第八届ACM大学生程序设计竞赛

    C 暂时还不对 #include <iostream> #include <cstdio> #include <cmath> using namespace std ...

  9. windows Apache服务器简单配置虚拟域名(转载)

    1.找到apache目录下的conf下的extra下的httpd-vhosts.conf虚拟主机配置文件 将下面的代码复制粘贴到最下面:   #<VirtualHost *:80>#   ...

  10. FatMouse' Trade(杭电ACM---1009)

    FatMouse' Trade Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)T ...