关于python定义私有函数的信息
求这段python的注释
片段代码没法注释
成都创新互联公司主营祥云网站建设的网络公司,主营网站建设方案,app软件定制开发,祥云h5小程序开发搭建,祥云网站营销推广欢迎祥云等地区企业咨询
比如引入的头文件,看不到头文件的源码或者说明注释之类的,完全只能靠猜测
再说 这只是片段代码 , 几乎得不到什么有用信息。
尝试,注释
# 引入各种模块
import BigWorld
from functools import partial
from gui.Scaleform.Battle import DamagePanel
from gui.battle_control import g_sessionProvider
# 定义一个私有函数,一个参数 bool
def __setFireInVehicle(self, bool):
#调用 old_setFireInVehicle 函数,并传入一个参数 bool
old_setFireInVehicle(self, bool)
# 大概是一个类的函数 callback 回调,传入各种参数
BigWorld.callback(4.57692e+018, partial(g_sessionProvider.getEquipmentsCtrl().changeSettingByTag, 'extinguisher', None, BigWorld.player()))
# 两个赋值语句
old_setFireInVehicle = DamagePanel._setFireInVehicle
DamagePanel._setFireInVehicle = __setFireInVehicle
# 就能得到这么多
再举个例子:
前提:我又一篇文言文,并且你对此文一无所知。
那么问题来了:我随便从中抽取一个片段,问你什么意思。(你觉着你能翻译出来的可能性有多大)
python中函数定义
1、函数定义
①使用def关键字定义函数
②
def 函数名(参数1.参数2.参数3...):
"""文档字符串,docstring,用来说明函数的作用"""
#函数体
return 表达式
注释的作用:说明函数是做什么的,函数有什么功能。
③遇到冒号要缩进,冒号后面所有的缩进的代码块构成了函数体,描述了函数是做什么的,即函数的功能是什么。Python函数的本质与数学中的函数的本质是一致的。
2、函数调用
①函数必须先定义,才能调用,否则会报错。
②无参数时函数的调用:函数名(),有参数时函数的调用:函数名(参数1.参数2.……)
③不要在定义函数的时候在函数体里面调用本身,否则会出不来,陷入循环调用。
④函数需要调用函数体才会被执行,单纯的只是定义函数是不会被执行的。
⑤Debug工具中Step into进入到调用的函数里,Step Into My Code进入到调用的模块里函数。
python中如何调用私有函数
class MyClass: def __init__(self): print "initialize..." def __play(self): print "play..." a = MyClass()initialize... a._MyClass__play()play... dir(a)['_MyClass__play', '__doc__', '__init__', '__module__']python的私有是伪的,还是可以访问到。 方法就是_类名__方法名,python不过是在以__开头的方法名面前加了小动作导致访问不到看起来像私有方法。
在python中什么是私有变量域
默认情况下,Python中的成员函数和成员变量都是公开的(public),在python中没有类似public,private等关键词来修饰成员函数和成员变量。
在python中定义私有变量只需要在变量名或函数名前加上 ”__“两个下划线,那么这个函数或变量就是私有的了。
作用域(scope),程序设计概念,通常来说,一段程序代码中所用到的名字并不总是有效/可用的,而限定这个名字的可用性的代码范围就是这个名字的作用域。
作用域的使用提高了程序逻辑的局部性,增强程序的可靠性,减少名字冲突。
私有变量域就是私有变量的可用范围。
在内部,python使用一种 name mangling 技术,将 __membername替换成 _classname__membername,也就是说,类的内部定义中,所有以双下划线开始的名字都被"翻译"成前面加上单下划线和类名的形式。
例如:为了保证不能在class之外访问私有变量,Python会在类的内部自动的把我们定义的__spam私有变量的名字替换成为
_classname__spam(注意,classname前面是一个下划线,spam前是两个下划线),因此,用户在外部访问__spam的时候就会
提示找不到相应的变量。
python中的私有变量和私有方法仍然是可以访问的;访问方法如下:
私有变量:实例._类名__变量名
私有方法:实例._类名__方法名()
其实,Python并没有真正的私有化支持,但可用下划线得到伪私有。 尽量避免定义以下划线开头的变量!
(1)_xxx "单下划线 " 开始的成员变量叫做保护变量,意思是只有类实例和子类实例能访问到这些变量,需通过类提供的接口进行访问;不能用'from module import *'导入。
(2)__xxx 类中的私有变量/方法名 (Python的函数也是对象,所以成员方法称为成员变量也行得通。)," 双下划线 " 开始的是私有成员,意思是只有类对象自己能访问,连子类对象也不能访问到这个数据。
(3)__xxx__ 系统定义名字,前后均有一个“双下划线” 代表python里特殊方法专用的标识,如 __init__()代表类的构造函数。
更多Python知识请关注Python视频教程栏目。
新闻名称:关于python定义私有函数的信息
网页URL:http://scjbc.cn/article/doesjod.html