python-成员修饰符
python的面相对象中,拥有3个成员,字段、方法、属性
class Foo:
def __init__(self,name):
#公有字段name在类中与类外均能调用
self.name = name def f1(self):
print(self.name) obj = Foo('alex')
#内部调用
print(obj.name)
#>>>alex
#外部调用
obj.f1()
#>>>alex
class Foo:
def __init__(self,name):
#私有字段name只能在类中调用类外不能调用
self.__name = name def f1(self):
print(self.__name) obj = Foo('alex')
#内部调用
print(obj.name)
#>>>alex
#外部调用
obj.f1()
#>>>报错
#特殊成员
class Foo:
#构造方法
def __init__(self,name,age):
self.name =name
self.age = age
print('实例化对象时执行') #析构方法
def __def__(self):
print('内存被释放时,自动触发执行')
def __call__(self):
print('call') def __str__(self):
return '%s-%d'%(self.name,self.age)
return '返回什么就显示什么'
p=Foo()
>>>实例化对象时执行
#>>>显示对象属于哪个类
print(p.__class__)
>>><class '__main__.Foo'>
#执行call方法
p()
>>>call
#先执行构造方法在执行call方法
Foo()()
>>>实例化对象时执行
>>>call obj1 = Foo('alex',71)
obj2 = Foo('eric',72)
#打印对象自动调用__str__方法
print(obj1)
>>>alex-71
print(obj2)
>>>eric-72
#执行str()方法的时候自动调用__str__方法
ret = str(obj1)
print(ret)
>>>alex-71
class Foo:
def __init__(self,name):
self.name = name #显示对象下的字段,以字典的形式保存
obj1 = Foo('alex')
obj2 = Foo('ecic')
ret = obj1.__dict__
print(ret)
print(ret['name']
>>>{'name','alex'}
>>>alex
class Foo:
def __init__(self,name,age):
self.name = name
self.age =age def __add__(self,other):
temp = '%s - %d'%(self.name,other.age)
return temp #执行对象相加的时候自动执行__add__方法
obj1 = Foo('alex',71)
obj2 = Foo('ecic',72)
#将obj1传入__add__方法的self中,obj2传入other中
ret = obj1 + obj2
print(ret)
>>>alex - 72
python-成员修饰符的更多相关文章
- Python学习:17.Python面向对象(四、属性(特性),成员修饰符,类的特殊成员)
一.属性(特性) 普通方法去执行的时候,后面需要加括号,特性方法执行的时候和静态字段一样不需要不需要加括号. 特性方法不和字段同名. 特性方法不能传参数. 在我们定义数据库字段类的时候,往往需要对其中 ...
- python - 类成员修饰符
在java,c#类的成员修饰符包括,公有.私有.程序集可用的.受保护的. 对于python来说,只有两个成员修饰符:公有成员,私有成员 成员修饰符是来修饰谁呢?当然是修饰成员了.那么python类的成 ...
- Python:Day25 成员修饰符、特殊成员、反射、单例
一.成员修饰符 共有成员 私有成员,__字段名,__方法 - 无法直接访问,只能间接访问 class Foo: def __init__(self,name,age): self.name = nam ...
- Python之 ---成员修饰符
一:成员修饰符:分为共有成员和私有成员: 私有成员:__通过两个下滑线:无法直接访问,要访问只能间接访问: 如下我们定义了一个对象,里面有两个共有的成员变量,成员变量是共有的时候我们可以外部访问,如果 ...
- Python面向对象之成员修饰符
对于这些类成员有修饰符 之前定义字段country任何对象都可以访问,是公有的 可以定义为私用属性,只有类内部的方法可以调用,外部不能直接调用,但是可以间接调用 vim day7-10.py #!/u ...
- Python学习 :面向对象 -- 成员修饰符
成员修饰符 两种成员 - 公有成员 - 私有成员, __字段名 - 无法直接访问,只能通过内部方法来间接访问私有成员 简例:公有成员与私有成员 class Info: country = '中国' ...
- Python菜鸟之路:Python基础-类(2)——成员、成员修饰符、异常及其他
三大成员 在Python的面向对象中,主要包括三大成员:字段.方法.属性 字段 类成员的字段又可分为普通字段.静态字段,他们在定义和使用中有所区别,而最本质的区别是内存中保存的位置不同,代码示例如下: ...
- python学习day20 面向对象(二)类成员&成员修饰符
1.成员 类成员 类变量 绑定方法 类方法 静态方法 属性 实例成员(对象) 实例变量 1.1实例变量 类实例化后的对象内部的变量 1.2类变量 类中的变量,写在类的下一级和方法同一级. 访问方法: ...
- Python面向对象(成员修饰符)
day25 成员修饰符 class Foo: def __init__(self, name, age): self.name = name self.__age = age#私有,外部无法直接访问 ...
- python_way,day8 面向对象【多态、成员--字段 方法 属性、成员修饰符、特殊成员、异常处理、设计模式之单例模式、模块:isinstance、issubclass】
python_way day8 一.面向对象三大特性: 多态 二.面向对象中的成员 字段.方法属性 三.成员修饰符 四.特殊成员 __init__.__doc__.__call__.__setitem ...
随机推荐
- 计算时间 相加,相减 的方法,TimeSpan 数据转换
#region Time calculation method public static string DelayTypeTime_1(DateTime ArrivalTime_1, DateTim ...
- POJ-2376 Cleaning Shifts---区间覆盖&贪心
题目链接: https://vjudge.net/problem/POJ-2376 题目大意: farmer John要安排他的牛清理牛棚,一共有T个牛棚要清理,每头牛可以清理相邻的牛棚.比如,一头牛 ...
- java常用输出技巧,debug
package control; import javax.swing.JFrame; public class DebugTest { public static void main(String[ ...
- create-react-app项目使用假数据
做新项目的时候,前端每次要等后端接口准备好再开始,就会延期,等后端接口准备好了,前端这边的项目又会相互紧张,如果前端跟后端同时进行,前期将框架,基础做好,定好接口文档,前端在后端没准备好接口的时候使用 ...
- 将命令的输出生成一个Web页面
解决方法: ConvertTo-Html 命令: 生成一个HTML表格来代表命令的输出,为你提供的每个对象创建一行,在每行中,Powershell会创建代表对象属性的值. 实现效果:
- aop 和castle 的一些 学习文章
https://www.cnblogs.com/zhaogaojian/p/8360363.html
- 在控制台中 使用memcache
控制台的代码 在memcache 中查询 hans,结果显示如下 :
- PEP8 常用规范
PEP8 常用规范 完整的规范移步这里两个传送门 pep8规范 官方文档:https://www.python.org/dev/peps/pep-0008/ PEP8中文翻译:http://www.c ...
- 关于var和ES6中的let,const的理解
var的作用就不多说了,下面说说var的缺点: 1.var可以重复声明 var a = 1; var a = 5; console.log(a); //5 不会报错 在像这些这些严谨的语言来说,一般是 ...
- 牛客小白月赛2 G 文 【模拟】
链接:https://www.nowcoder.com/acm/contest/86/G来源:牛客网 题目描述 Sεlιнα(Selina) 开始了新一轮的男友海选.她要求她的男友要德智体美劳样样都全 ...