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类的几点笔记的更多相关文章

  1. Python学习笔记之面向对象编程(三)Python类的魔术方法

    python类中有一些方法前后都有两个下划线,这类函数统称为魔术方法.这些方法有特殊的用途,有的不需要我们自己定义,有的则通过一些简单的定义可以实现比较神奇的功能 我主要把它们分为三个部分,下文也是分 ...

  2. python核心编程第二版笔记

    python核心编程第二版笔记由网友提供:open168 python核心编程--笔记(很详细,建议收藏) 解释器options:1.1 –d   提供调试输出1.2 –O   生成优化的字节码(生成 ...

  3. python类与对象基本语法

    面向对象编程的2个非常重要的概念:类和对象. 对象是面向对象编程的核心,在使用对象的过程中,为了将具有共同特征和行为的一组对象抽象定义,提出了另外一个新的概念--类. 类就相当于制造飞机时的图纸,用它 ...

  4. 再学python类(终结篇)

    续写 初学python类,这几天吃坏东西了,拖着虚弱的身躯写的.有些乱请各位看官海涵. 声明:本人编程新手,还在学习中.所表述的东西都是基础语法之类的,分享我的学习笔记.还望多多指点,我一定虚心接受. ...

  5. 【Python&数据结构】 抽象数据类型 Python类机制和异常

    这篇是<数据结构与算法Python语言描述>的笔记,但是大头在Python类机制和面向对象编程的说明上面.我也不知道该放什么分类了..总之之前也没怎么认真接触过基于类而不是独立函数的Pyt ...

  6. python聚类算法实战详细笔记 (python3.6+(win10、Linux))

    python聚类算法实战详细笔记 (python3.6+(win10.Linux)) 一.基本概念:     1.计算TF-DIF TF-IDF是一种统计方法,用以评估一字词对于一个文件集或一个语料库 ...

  7. 学习python类

    类:Python 类提供了面向对象编程的所有基本特征: 允许多继承的类继承机制, 派生类可以重写它父类的任何方法, 一个方法可以调用父类中重名的方法. 对象可以包含任意数量和类型的数据成员. 作为模块 ...

  8. 孤荷凌寒自学python第二十四天python类中隐藏的私有方法探秘

    孤荷凌寒自学python第二十四天python类中隐藏的私有方法探秘 (完整学习过程屏幕记录视频地址在文末,手写笔记在文末) 今天发现了python的类中隐藏着一些特殊的私有方法. 这些私有方法不管我 ...

  9. 孤荷凌寒自学python第二十三天python类的封装

    孤荷凌寒自学python第二十三天python类的封装 (完整学习过程屏幕记录视频地址在文末,手写笔记在文末) 一.从怎么样访问类的内部代码块中定义的私有属性说起 类中定义的私有属性和私有方法是无法被 ...

随机推荐

  1. 导出CSV乱码

    导出CSV,无论是什么格式,excel打卡都是乱码 需要加上 echo "\xEF\xBB\xBF"; header("Content-Disposition:attac ...

  2. 【bzoj1042】[HAOI2008]硬币购物 背包dp+容斥原理

    题解: 计数题 首先考虑容斥 这题很明显加了限制状态就很多 考虑没有限制 显然可以直接dp 然后 我们看一下 容斥 某一个使用>=k张 那么其实就是 f[i-k*c[]] 于是这样就可以做了

  3. gcc make 与cmake

    1. gcc (1)是什么? 它是GNU Compiler Collection(就是GNU编译器套件),也可以简单认为是编译器.它可以编译很多种编程语言(括C.C++.Objective-C.For ...

  4. TCP/UDP 协议,和 HTTP、FTP、SMTP,区别及应用场景

    一.OSI 模型 OSI 模型主要作为一个通用模型来做理论分析,而TCP/IP 协议模型是互联网的实际通讯协议,两者一般做映射分析,以下不做严格区分和声明(好吧,比较懒): OSI 整个模型层次大致可 ...

  5. 062 SparkStream内部原理

    1.DStream 内部是一系列的RDD组成的,每个RDD与RDD的产生时间形成一个pair保存在内存中(下面有) RDD包含了对应时间段的所有block数据. 2.DStream下的方法 /** T ...

  6. 牛客练习赛A 【BFS】

    <题目链接> 题目大意: 给出一张图,问你其中 ' # ' 加上那些不能够到达边界的 ' . ' 的点的个数,' # ' 会起阻挡作用. 解题分析: 本题很好做,无非就是将所有能够由边界上 ...

  7. Tomcat v9.0 Could not publish to the server. java.lang.IndexOutOfBoundsException

    今天使用Tomcat启动一个java项目,出现报错: Could not publish to the server. java.lang.IndexOutOfBoundsException 众寻之下 ...

  8. linux 学习笔记 ftp

    server with sites set up for download files sometimes provide an anonymous ftp account 数据传输 ftp 192. ...

  9. Vue项目History模式404问题解决

    本文主要解决Vue项目使用History模式发布到服务器Nginx上刷新页面404问题.(由于每个项目的情况都不尽相同,本方案已经完美解决本在所使用项目,具体情况可能还需要修改.) 1.项目背景分析 ...

  10. Intellij IDEA实现SpringBoot项目多端口启动

    前言 有时候使用springboot项目时遇到这样一种情况,用一个项目需要复制很多遍进行测试,除了端口号不同以外,没有任何不同.这时我们强大的Intellij IDEA就能替我们实现. 实现方法 第一 ...