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 ...
随机推荐
- IOS instancetype的使用好处
instancetype的类型表示上,跟id一样,可以表示任何对象类型 instancetype只能用在返回值类型上,不能像 id 一样用在参数类型上 instancetype 比 id 多一个好处 ...
- Uva 11235 RMQ问题
RMQ: 有一个不变的数组,不停的求一个区间的最小值. 使用倍增的思想优化到logN; d(i,j) 表示从 i 开始的,长度为2j的一段元素中的最小值. 那么状态转移方程: d(i,j) = min ...
- 从Internet下载一个文件
使用的.net框架下的System.Net.WebClient类的DownloadFile()方法以图片为例:
- python-列表常用功能介绍
一.列表(list) 1.定义列表 names = [] #定义空列表 names = ['a','b','c'] #定义非空列表 2.访问列表中元素 >>> names = ['a ...
- CUDA Texture纹理存储器 示例程序
原文链接 /* * Copyright 徐洪志(西北农林科技大学.信息工程学院). All rights reserved. * Data: 2012-4-20 */ // // 此程序是演示了1D和 ...
- JavaScript正则(一)
1.字符组: ^ $ 说的是开始位置和结束位置,在JS中,既表示字符串的起始位置和结束位置,也表示行的起始位置和结束位置 console.log(/^\d$/.test('2')); // true ...
- 1、SpringBoot+MybatisPlus整合
<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://mave ...
- Hive[6] HiveQL 查询
6.1 SELECT ... FROM 语句 hive> SELECT name,salary FROM employees; --普通查询 hive>SELECT e.n ...
- BZOJ3288: Mato矩阵(欧拉函数 高斯消元)
Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 386 Solved: 296[Submit][Status][Discuss] Descriptio ...
- MappingException:class com.zsn.crm.Model.user not found whie looking for property user id
之前好好地运行 什么东西都没动过 再次运行突然报异常*****MappingException:class com.zsn.crm.Model.user not found whie looking ...