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类的封装 (完整学习过程屏幕记录视频地址在文末,手写笔记在文末) 一.从怎么样访问类的内部代码块中定义的私有属性说起 类中定义的私有属性和私有方法是无法被 ...
随机推荐
- 在java中获取URL的域名或IP与端口
package com.xxl.sso.sample; import java.net.URI; import java.net.URISyntaxException; public class te ...
- JCenter下载太慢, jcenter修改 https为http也许能帮助你
今天导入一个工程到studio,一直卡在下载那块. 看到下载地址是:https://jcenter.bintray.com/........https!!!! 到浏览器下载,果然也下载不下来.. 于是 ...
- 山寨版 WP8.1 Cortana 启动 PC
8.1 dev preview 发布以来 Cortana 很受关注 前一段看到有视频演示用 Cortana 来启动 PC 看视频也是启动第三方应用实现的,简单来弄其实就是个语音启动应用 + 网络唤醒么 ...
- [转] js中的钩子机制(hook)
什么是钩子机制?使用钩子机制有什么好处? 钩子机制也叫hook机制,或者你可以把它理解成一种匹配机制,就是我们在代码中设置一些钩子,然后程序执行时自动去匹配这些钩子:这样做的好处就是提高了程序的执行效 ...
- es6 模板字符串
模板字符串 提供构造字符串的语法糖,在 Prel/python 等语言中也都有类似特性. 1.反引号模板,可以换行 2.反引号模板,可以嵌套 用+``来嵌套 好处:语法更加简洁 var name=&q ...
- NEST 中的日期数学表达式
Date math expressions Version: 5.x 英文原文地址:Date math expressions query/filter 中涉及到日期类型时(如:timeout 参数) ...
- Flink--time-window 的高级用法
1.现实世界中的时间是不一致的,在 flink 中被划分为事件时间,提取时间,处理时间三种. 2.如果以 EventTime 为基准来定义时间窗口那将形成 EventTimeWindow,要求消息本身 ...
- HDU4343Interval query 倍增
去博客园看该题解 题意 给定n个区间[a,b),都是左闭右开,有m次询问,每次询问你最多可以从n个区间中选出多少[L,R]的子区间,使得他们互不相交. n,m<=10^5. 区间下标<=1 ...
- 启动tomcat出现Removing obsolete files from server... Could not clean server of obsolete ……错误
在Eclipse启动tomcat出现"Removing obsolete files from server... Could not clean server of obsolete …… ...
- 在github上创建新的分支(包括管理分支)
考虑到前面的项目在master分支上,这个不是太友好,下面在只有master分支的基础上,新建一个dev分支 一:查看 1.查看本地分支 git branch 2.查看远程分支 git branch ...