python成长之路——第八天
pickle,load :切记:如果load的是个对象的话,必须导入构建这个对象的类
print(
'''
继承顺序:ABCDEF 先左后右,深度优先,最后找祖宗
F
/ \
C E
| |
B D
\ /
A
''')
class F:
def f3(self):
print("F f3")
class C(F):
def f1(self):
print("C f1")
class E(F):
def f1(self):
print("E f1")
class B(C):
def f2(self):
print("B f2")
class D(E):
def f2(self):
print("D f2")
def f1(self):
print(“D f1")
def f3(self):
print("D f3")
class A(B,D):
pass
obj=A()
print("B和D继承关系:先左后右")
obj.f2()
print("C和D继承关系:深度优先")
obj.f1()
print("F和D的继承关系:如果有共同的祖宗的话最后找祖宗")
obj.f3()
class Province:
country=“中国" #静态字段
def __init__(self,province):
self.province=province #普通字段
print("#######一般情况:自己访问自己的字段######")
sx=Province("山西")
print(Province.country)
print(sx.province)
print("#####python不一般:对象里的字段只能用对象访问,静态字段用类访问(万不得已的时候可以用对象访问)#####")
print(sx.country)
class Province:
country="中国"
def __init__(self,province):
self.province=province
def show(self): #普通方法
print(self.province)
@staticmethod
def static(): #静态方法
print(123) Province.static()
class Province:
country="中国"
def __init__(self,province):
self.province=province
def show(self): #普通方法
print(self.province)
@classmethod
def class_func(cls): #类方法 cls是class的缩写,代指类 类似self代指对象
sx=cls("山西")
sx.show()
class Province:
country="中国"
def __init__(self,province):
self.province=province
@property
def show(self): #属性
return self.province sx=Province("山西")
province=sx.show
print(province)
class C:
def __init__(self,total):
self.total=total
@property
def f1(self):
return self.total
@f1.setter
def f1(self,value):
print(value)
@f1.deleter
def f1(self):
print("i am del") c=C(101)
ret = c.f1
print(ret)
c.f1=100
del c.f1
class C:
def __init__(self,total):
self.total=total
def f1(self):
return self.total
def f2(self,value):
print(value)
def f3(self):
print("i am del")
Foo=property(fget=f1,fset=f2,fdel=f3)
c=C(101)
ret = c.Foo
print(ret)
c.Foo = 100
del c.Foo
class C1:
__age=18
def __init__(self,name):
self.__name=name
def f1(self):
print(self.__name)
@staticmethod
def f3():
print(C1.__age) class C2(C1):
def f2(self):
print(self.__name) p=C1("jack")
p.f1()
# p2=C2("zy")
# p2.f2() #错误
p.f3()
# print(C1.__age) #错误
# print(p.__name) #错误
print("####以下是非一般情况,尽量别用####")
print(p._C1__name)
print(p._C1__age)
class C1:
def __f1(self):
print("123")
def f2(self):
self.__f1() p=C1()
p.f2()
p._C1__f1() #非一般情况,最后别用
# p.__f1() #错误
class C1:
@property
def __f1(self):
print("123")
def f2(self):
self.__f1 p=C1()
p.f2()
p._C1__f1 #非一般情况,最后别用
# p.__f1 #错误
class C1:
'''
这是个使用__str__方法的类
也是个使用__call__方法的类
'''
def __init__(self,name):
self.name = name
def __str__(self):
return self.name
def __call__(self):
print("执行call方法")
class C2:
pass
print(C1.__doc__)
print("#####没有__str__方法#####")
p3=C2()
print(p3)
print("#####__str__第一种方式#####")
p1=C1('alex')
print(p1)
print("#####__str__第二种方式#####")
p2=C1('jack')
ret = str(p2)
print(ret)
print("#####__call__#####")
p1()
class C1:
def __init__(self,name,age):
self.name = name
self.age = age p1=C1('alex',18)
print(p1.__dict__)
class C1:
def __init__(self,name,age):
self.name = name
self.age = age print(C1.__dict__) #一般不用
dic={}
class C1:
def __getitem__(self, item):
print(dic[item])
def __setitem__(self, key, value):
dic[key]=value
def __delitem__(self, key):
del dic[key]
obj=C1()
obj[0]=00
obj[1]=11
obj[2]=22
obj["jack"]="张士杰"
del obj[1]
obj[0]
obj[2]
obj["jack"]
class Foo:
def __iter__(self):
for i in range(5):
yield i obj=Foo()
for item in obj:
print(item)
python成长之路——第八天的更多相关文章
- 我的Python成长之路---第八天---Python基础(25)---2016年3月5日(晴)
多进程 multiprocessing模块 multiprocessing模块提供了一个Process类来代表一个进程对象 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 ...
- 我的Python成长之路---第八天---Python基础(24)---2016年3月5日(晴)
多线程编程 什么是多线程,线程是操作系统能够进行运算调度的最小单位.他包含在进程之中,是进程中的实际运作单位.线程是进程中一个单顺序的空值六,一个进程可以并发多个线程,每个线程可以并行处理不同的任务. ...
- 我的Python成长之路---第八天---Python基础(23)---2016年3月5日(晴)
socketserver 之前讲道德socket模块是单进程的,只能接受一个客户端的连接和请求,只有当该客户端断开的之后才能再接受来自其他客户端的连接和请求.当然我们也可以通过python的多线程等模 ...
- 【Python成长之路】Python爬虫 --requests库爬取网站乱码(\xe4\xb8\xb0\xe5\xa)的解决方法【华为云分享】
[写在前面] 在用requests库对自己的CSDN个人博客(https://blog.csdn.net/yuzipeng)进行爬取时,发现乱码报错(\xe4\xb8\xb0\xe5\xaf\x8c\ ...
- (转)Python成长之路【第九篇】:Python基础之面向对象
一.三大编程范式 正本清源一:有人说,函数式编程就是用函数编程-->错误1 编程范式即编程的方法论,标识一种编程风格 大家学习了基本的Python语法后,大家就可以写Python代码了,然后每个 ...
- 【Python成长之路】装逼的一行代码:快速共享文件
[Python成长之路]装逼的一行代码:快速共享文件 2019-10-26 15:30:05 华为云 阅读数 335 文章标签: Python编程编程语言程序员Python开发 更多 分类专栏: 技术 ...
- python成长之路第三篇(1)_初识函数
目录: 函数 为什么要使用函数 什么是函数 函数的返回值 文档化函数 函数传参数 文件操作(二) 1.文件操作的步骤 2.文件的内置方法 函数: 一.为什么要使用函数 在日常写代码中,我们会发现有很多 ...
- 我的Python成长之路---第一天---Python基础(1)---2015年12月26日(雾霾)
2015年12月26日是个特别的日子,我的Python成之路迈出第一步.见到了心目中的Python大神(Alex),也认识到了新的志向相投的伙伴,非常开心. 尽管之前看过一些Python的视频.书,算 ...
- Python成长之路第二篇(1)_数据类型内置函数用法
数据类型内置函数用法int 关于内置方法是非常的多这里呢做了一下总结 (1)__abs__(...)返回x的绝对值 #返回x的绝对值!!!都是双下划线 x.__abs__() <==> a ...
随机推荐
- 工具类_java 操作cookie
import java.io.UnsupportedEncodingException;import java.net.URLDecoder;import java.net.URLEncoder;im ...
- 关于结构体和C++类的内存地址问题
关于结构体和C++类的内存地址问题 今天终于有时间写点东西了~ 太爽了 *_* 很多人都知道C++类是由结构体发展得来的,所以他们的成员变量(C语言的结构体只有成员变量)的内存分配机制是一样 ...
- Java 根据comboBox选择结果显示JTable
处理这样的问题的主要思路是: 对于JTable,JTree等Swing控件,都有一个对应的Model用来存储数据,JTable对应的有一个DefaultTableModel. Defa ...
- spring集成mongodb封装的简单的CRUD
1.什么是mongodb MongoDB是一个基于分布式文件存储的数据库.由C++语言编写.旨在为WEB应用提供可扩展的高性能数据存储解决方案. mongoDB MongoDB是一个介 ...
- Sonar入门学习
最近在学习Sonar,配置了好几天,才搭建起来环境,为自己的学习能力感到汗颜,赶紧在此记录一下,所谓好记性不如烂笔头. 1.Sonar介绍 Sonar是一个用于代码质量管理的开源平台,用于管理Java ...
- CopyU!新插件 CopyPC2U正式发布!
CopyPC2U双向拷贝插件今天正式上线!该插件需要CopyU!较新版本的支持,可以帮助将文件从电脑自动的复制到移动设备上. 下载地址:http://kuai.xunlei.com/d/BiIvAED ...
- externkeyword放到函数体内而导致的linkage问题
不少人都知道,C/C++语言编程时,假设要引用在别的C/C++文件里定义的变量或函数,必须extern一下,才干使用 另一些人知道,这个extern事实上能够放在函数体内声明,这么做的理由是不想让其它 ...
- xcode UIView常用方法属性动画
常见属性: @property(nonatomic,readonly) UIView *superview; 获得自己的父控件对象 @property(nonatomic,readonly,copy) ...
- JQuery DataTable插件
参考文件: http://blog.csdn.net/xuechongyang/article/details/8424897 http://blog.csdn.net/llhwin2010/arti ...
- C# 微信公众平台开发(4)-- 模版消息
微信公众平台开发 --发送模版消息 发送模版消息是微信服务号给某个用户发送模版消息,类似于APP的推送通知: 1.添加模版消息 在页面的左上 有一个添加功能插件的 按钮,如题 添加完成后,我们就可以在 ...