- 包括实例属性、类属性,私有成员和公有成员,公有方法、私有方法和静态方法。
类似_xxx和__xxx这样的函数或变量就是非公开的,不应该被直接引用。如下:
# python私有函数
def _abc_1(name):
return "Hello, 私有函数一号为:%s" %name
def _abc_2(name):
return "Hi, 私有函数二号为:%s" %name
# python公有函数
def greeting(name):
if len(name)>3:
return _abc_1(name)
else:
return _abc_2(name)
print(greeting('frank'))
-
类Class中成员变量有两种属性分别是:实例属性和类属性。
实例属性是在构造函数中定义的(init),定义时候以self作为前缀。
类属性是在类中方法之外但又在类之中定义的属性。类属性在所有实例之间共享。在类内部和类外部都可以通过"类.类属性"来访问。
两者访问形式:主程序中,实例属性只能通过对象名访问;而类属性能够通过类名访问,也可以通过对象名访问。
对于公有成员(方法和变量),可以公开使用,既可以在类内部访问,也可以在类外部访问。
-
对于私有成员(方法和变量),只能在类内部使用,但也可以通过特殊的方法进行访问,即"对象名._类名+私有成员",
book._Book__types
。- 两者表现形式:类属性定义时,如果以两个短下滑线"__"开头则表示是私有属性,否则就是公有属性。例如,
self.__size = s
为私有属性,而self.price = money
为公有属性。
- 两者表现形式:类属性定义时,如果以两个短下滑线"__"开头则表示是私有属性,否则就是公有属性。例如,
私有方法:以两个下滑线"__"开始,不能通过对象名直接调用。只能在属于对象的方法中通过self调用。例如,
self._namemethod
公有方法:通过对象名直接调用。例如,
a.printLcs
静态方法:可以通过类名和对象名调用,但不能直接访问属于对象的成员,只能访问属于类的成员。
参考:
1、https://blog.csdn.net/lydia_liumeijie/article/details/80391531
2、菜鸟教程:http://www.runoob.com/python3/python3-class.html
python中得公有和私有——私有函数和公开函数_补充完整的更多相关文章
-
python中获取当前位置所在的行号和函数名(转)
http://www.vimer.cn/2010/12/%E5%9C%A8python%E4%B8%AD%E8%8E%B7%E5%8F%96%E5%BD%93%E5%89%8D%E4%BD%8D%E7 ...
-
python中获取当前位置所在的行号和函数名(转)
http://www.vimer.cn/2010/12/%E5%9C%A8python%E4%B8%AD%E8%8E%B7%E5%8F%96%E5%BD%93%E5%89%8D%E4%BD%8D%E7 ...
-
JS中的 公有变量、私有变量 !
公有变量.私有变量 ! 初学者的见解,算是记录学习过程,也算是分享以便共同成长,如有不正确的地方,还请不吝赐教! 先看代码1: function car(){ var wheel = 3; //私有变 ...
-
Python私有函数和公开函数
类似_xxx和__xxx这样的函数或变量就是非公开的(private),不应该被直接引用,比如_abc,__abc等: # private私有函数 def _private_1(name): retu ...
-
python中的printf:%号拼接字符串和format函数
在C语言中,我们使用printf("%s","hello")这种形式进行字符串的拼接 在python中,进行这样的拼接有两种实现方式,分别是%号拼接以及使用fo ...
-
python中的zip、map、reduce 、lambda函数的使用。
lambda只是一个表达式,函数体比def简单很多. lambda的主体是一个表达式,而不是一个代码块.仅仅能在lambda表达式中封装有限的逻辑进去. lambda表达式是起到一个函数速写的作用.允 ...
-
python中的运算符及表达式及常用内置函数
知识内容: 1.运算符与表达式 2.for\while初步了解 3.常用内置函数 一.运算符与表达式 python与其他语言一样支持大多数算数运算符.关系运算符.逻辑运算符以及位运算符,并且有和大多数 ...
-
Python中生成器,迭代器,以及一些常用的内置函数.
知识点总结 生成器 生成器的本质就是迭代器. 迭代器:Python中提供的已经写好的工具或者通过数据转化得来的. 生成器:需要我们自己用Python代码构建的 创建生成器的三种方法: 通过生成器函数 ...
-
python中的enumerate、map、filter和zip函数
引入 python内置了很多可以供我们直接调用的函数,这些函数的效率往往都非常高.我们在自己造*的同时,也非常有必要了解并且正确使用python给我们提供的大量的内置函数.在前面的博客里面我已经介绍 ...
随机推荐
-
python文件操作实例
把目录 E:\ 下面所有 后缀名为 .py 的 文件复制到 E:\PyLearn #coding:utf-8 import os import shutil def getfile(srcDir,ds ...
-
完整的ajax请求投票点赞功能的实现【数据库表一(票数)表二(ip限制重复投票)】
前端php页面 <?php if(isset($_GET['id'])){ $id=$_GET['id']; } include('data/conn.php'); $sqls="se ...
-
在eclipse中将项目发布到tomcat的root目录
(1)设置项目上下文,右击项目-properties >Web Page Edit
-
AndroidStudio怎么将开源项目发布到jcenter
前言 自己在网上搜了一大堆,大体就两种方法,而我选择的是其中代码少的的方法,不过他们或多或少留下了少许的坑,(按他们的方法我是上传成功,但不能发布到jCenter上去,也可能是我自己的问题o(≧v≦) ...
-
SPA 单页面应用程序。
看到这个问题,先说下自己的理解到的程度,再去参考做修正,争取这一次弄懂搞清楚 自己的理解: 单页面应用程序,解决浏览器获取数据刷新页面的尴尬,通过ajax请求获取数据达到异步更新视图的按钮,原理的实现 ...
-
poj3104 Drying(二分最大化最小值 好题)
https://vjudge.net/problem/POJ-3104 一开始思路不对,一直在想怎么贪心,或者套优先队列.. 其实是用二分法.感觉二分法求最值很常用啊,稍微有点思路的二分就是先推出公式 ...
-
(转)MySQL 加锁处理分析
MySQL 加锁处理分析 原文:http://hedengcheng.com/?p=771 1 背景 1 1.1 MVCC:Snapshot Read vs Current Read ...
-
深入理解python中的yield关键字
想必大家都看过这样的代码: 上面的这段代码会计算0-9的平方并打印出来. 那么问题来了,这段代码和我们要说的东西有什么区别呢? 这里的关键字,yield,我在前面的文章里已经发过了.那么yield是什 ...
-
Bootstrap入门六:表单
表单主要包含表单域.输入框.下拉框.单选框.多选框和按钮等控件. 1.基本实例 单独的表单控件会被自动赋予一些全局样式.所有设置了 .form-control 类的 <input>.< ...
-
Autowire
Field userService in com.demo.web.Controller.HomeController required a single bean, but 2 were found ...