Python类的几点笔记
1.
class A:
def __init__(self, a, b):
self.a = a
self.b = b
print(a, b) class B(A):
def __init__(self, aa, bb): 此处最好写成 a,b因为self.a=a 父类是如此,子类亦应如此,不容易混淆
a.__init__(self, aa, bb) #如此调用等价于 super(B,self).__init__(aa,bb)
print('wosinibaba')
print(self.a)
print(self.b) aaa = b('', '') 2.
class person:
def __init__ (self, name, age):
self.name = name
self.age = age
class friend:
def __init__(self, sex):
self.sex = sex
def ff(self):
print('i is your friend')
class man(person, friend):
def __init__(self, name, age, sex):
person.__init__(self, name, age)
friend.__init__(self, sex) m = man('zhangsan', 20, 'boy')
m.ff()
print(m.sex) 多继承如果参数不一样只能分开调用,如果参数一样可以用super()函数 一个下划线开头表示保护成员 例如_name
两个下划线开头表示私有成员 例如__name 定义类的时候首字母应该大写 3.
class A:
'''erza erza woshi ni baba'''
def __init__(self):
self.name = 'erza'
def __str__(self):
return "<obj:%s>" % self.name
print(A.__doc__) #打印第一行类的注释
print(A.__dict__) #打印所有类变量 实例调用的话是所有实例变量
print(A) #__str__方法改变打印A对象 例如此时打印<class '__main__.A'> 4.
可以把一个类封装成字典 class Dict:
def __init__(self):
self.data = {}
def __getitem__(self, item):
return self.data[item]
def __setitem__(self, key, value):
self.data[key] = value
def __delitem__(self, key):
self.data.pop(key) d = Dict()
d['name'] = 'zhangsan'
print(d['name'])
del d['name']
print(d['name']) 5. 类的类型为 type 可以用type创建类
def __init__(self, name, age):
self.name = name
self.age = age
def talk():
print('Wang Wang Wang!!!') Foo = type('Foo',(object,), {'__init__':__init__,'talk':talk}) f =Foo('ZhangSan', 10)
print(f.age)
print(f.name) 6.
反射:hasattr判断对象中是否有字符串表示的方法,getattr获得对象中字符串表示的方法,setattr在对象中添加bluck方法添加为的方法名为chocie,delattr删除字符串表示的方法
def bluck(self):
print('%s is blucking!' % self.name)
class A:
def __init__(self, name):
self.name = name
def talk(self):
print('wangwang!')
def eat(self):
print('%s is eating !' % self.name) a = A('dog')
choice = input('>>:')
if hasattr(a, choice):
# getattr(a, choice)()
func = getattr(a, choice)
func()
else:
setattr(a, choice, bluck) #setattr添加的方法和静态方法类似,如果用到对象需要传递对象
getattr(a, choice)(a)
delattr(a, 'talk')
a.talk()
Python类的几点笔记的更多相关文章
- Python学习笔记之面向对象编程(三)Python类的魔术方法
python类中有一些方法前后都有两个下划线,这类函数统称为魔术方法.这些方法有特殊的用途,有的不需要我们自己定义,有的则通过一些简单的定义可以实现比较神奇的功能 我主要把它们分为三个部分,下文也是分 ...
- python核心编程第二版笔记
python核心编程第二版笔记由网友提供:open168 python核心编程--笔记(很详细,建议收藏) 解释器options:1.1 –d 提供调试输出1.2 –O 生成优化的字节码(生成 ...
- python类与对象基本语法
面向对象编程的2个非常重要的概念:类和对象. 对象是面向对象编程的核心,在使用对象的过程中,为了将具有共同特征和行为的一组对象抽象定义,提出了另外一个新的概念--类. 类就相当于制造飞机时的图纸,用它 ...
- 再学python类(终结篇)
续写 初学python类,这几天吃坏东西了,拖着虚弱的身躯写的.有些乱请各位看官海涵. 声明:本人编程新手,还在学习中.所表述的东西都是基础语法之类的,分享我的学习笔记.还望多多指点,我一定虚心接受. ...
- 【Python&数据结构】 抽象数据类型 Python类机制和异常
这篇是<数据结构与算法Python语言描述>的笔记,但是大头在Python类机制和面向对象编程的说明上面.我也不知道该放什么分类了..总之之前也没怎么认真接触过基于类而不是独立函数的Pyt ...
- python聚类算法实战详细笔记 (python3.6+(win10、Linux))
python聚类算法实战详细笔记 (python3.6+(win10.Linux)) 一.基本概念: 1.计算TF-DIF TF-IDF是一种统计方法,用以评估一字词对于一个文件集或一个语料库 ...
- 学习python类
类:Python 类提供了面向对象编程的所有基本特征: 允许多继承的类继承机制, 派生类可以重写它父类的任何方法, 一个方法可以调用父类中重名的方法. 对象可以包含任意数量和类型的数据成员. 作为模块 ...
- 孤荷凌寒自学python第二十四天python类中隐藏的私有方法探秘
孤荷凌寒自学python第二十四天python类中隐藏的私有方法探秘 (完整学习过程屏幕记录视频地址在文末,手写笔记在文末) 今天发现了python的类中隐藏着一些特殊的私有方法. 这些私有方法不管我 ...
- 孤荷凌寒自学python第二十三天python类的封装
孤荷凌寒自学python第二十三天python类的封装 (完整学习过程屏幕记录视频地址在文末,手写笔记在文末) 一.从怎么样访问类的内部代码块中定义的私有属性说起 类中定义的私有属性和私有方法是无法被 ...
随机推荐
- epoll(二)
epoll概念 epoll对文件描述符的操作方式有两种工作模式:LT模式(Level Trigger,水平触发) 和ET模式(Edge Trigger,边缘触发). LT模式:当epoll_wait检 ...
- java使用Jsch实现远程操作linux服务器进行文件上传、下载,删除和显示目录信息
1.java使用Jsch实现远程操作linux服务器进行文件上传.下载,删除和显示目录信息. 参考链接:https://www.cnblogs.com/longyg/archive/2012/06/2 ...
- eclipse工具下hadoop环境搭建
eclipse工具下hadoop环境搭建: window10操作系统中搭建eclipse64开发系统,配置hadoop的eclipse插件,让eclipse可以查看Hdfs中的文件内容. ...
- JDK1.8 JVM参数配置
JAVA_OPTS=" -server #服务器模式 -Xmx4g #JVM最大允许分配的堆内存,按需分配 -Xms4g #JVM初始分配的堆内存,一般和Xmx配置成一样以避免每次gc后JV ...
- [转] iOS9系统自带字体
Family: Thonburi Font: Thonburi-Bold Font: Thonburi Font: Thonburi-Light 1 2 3 4 Family: Khmer Sanga ...
- x86 版的 Arduino Intel Galileo 开发板的体验、分析和应用
1.前言 在今年(2013)罗马举办的首届欧洲 Make Faire 上,Intel 向对外发布了采用 x86 构架的 Arduino 开发板:Intel Galileo.这无疑是一个开源硬件领域的重 ...
- Python_shelve模块
shelve:对象持久化的保存的模块,将对象保存到文件里 (默认的数据存储文件为二进制),可持久化任何pickle可支持的Python数据格式 shelve 中唯一的方法: shelve.open( ...
- GFS 安装使用
准备环境: 1.OS: Centos:7.2x86_64 2.主机 server1: 192.168.30.41 wohaoshuai1 server2: 192.168.30.42 wohaoshu ...
- PHP中使用CURL实现GET和POST请求(转载)
CURL 是一个利用URL语法规定来传输文件和数据的工具,支持很多协议,如HTTP.FTP.TELNET等.最爽的是,PHP也支持 CURL 库.使用PHP的CURL 库可以简单和有效地去抓网页.你只 ...
- BZOJ3622 已经没有什么好害怕的了 动态规划 容斥原理 组合数学
原文链接https://www.cnblogs.com/zhouzhendong/p/9276479.html 题目传送门 - BZOJ3622 题意 给定两个序列 $a,b$ ,各包含 $n$ 个数 ...