【原】Python基础-__init__
#py中,有些名称前后都会加上俩个下划线,是有特殊含义的
#在Py中,由这些名字组成的集合所包含的方法称为 “魔法方法”。如果在你的对象中
#实现了这些方法的其中某一个,那这些方法会被py自动调用,几乎没有必要自己调用。比如
#构造方法,在类中定义 __init__就可以。
class FooBar:
var = "none"
def __init__(self):
self.var = "init var"
f = FooBar()
print(f.var)
#构造方法有参数的情况
class FooBar2:
var = "none"
def __init__(self, value):
self.var = value
f2 = FooBar2("sysnap xxxx")
print(f2.var)
#类的继承
class ClassA:
def hello(self):
print("hello in class A")
class ClassB(ClassA):
pass
a = ClassA()
a.hello() #输出 hello in class A
b = ClassB()
b.hello() #输出hello in class A
del a, b
#类继承中,方法的重写
class ClassA_1:
def hello(self):
print("hello class a")
class ClassB_1(ClassA_1):
def hello(self): #重写了a中的hello方法
print("hello class b")
a = ClassA_1()
a.hello() #输出hello class a
b = ClassB_1()
b.hello() #输出hello class b
#继承类中重写构造方法,有个问题,就是父类的构造方法不会被调用到,使用supper函数
class Brid:
def __init__(self):
self.hungry = 1
def eat(self):
if self.hungry == 1:
print("i am hungry!\n")
self.hungry = 0
else:
print("i am not hungry!\n")
class SongBird(Brid):
def __init__(self):
super(SongBird, self).__init__()
self.sound = "ko ko"
def sing(self):
print(self.sound)
sbird = SongBird()
sbird.eat()
sbird.eat()
sbird.sing()
【原】Python基础-__init__的更多相关文章
- Python之路【第二篇】:Python基础
参考链接:老师 BLOG : http://www.cnblogs.com/wupeiqi/articles/4906230.html 入门拾遗 一.作用域 只要变量在内存中就能被调用!但是(函数的栈 ...
- Python基础(二) —— 字符串、列表、字典等常用操作
一.作用域 对于变量的作用域,执行声明并在内存中存在,该变量就可以在下面的代码中使用. 二.三元运算 result = 值1 if 条件 else 值2 如果条件为真:result = 值1如果条件为 ...
- Python之路,Day4 - Python基础4 (new版)
Python之路,Day4 - Python基础4 (new版) 本节内容 迭代器&生成器 装饰器 Json & pickle 数据序列化 软件目录结构规范 作业:ATM项目开发 ...
- Day4 - Python基础4 迭代器、装饰器、软件开发规范
Python之路,Day4 - Python基础4 (new版) 本节内容 迭代器&生成器 装饰器 Json & pickle 数据序列化 软件目录结构规范 作业:ATM项目开发 ...
- Python 基础 一
Python 基础 一 一.关于Python的介绍 python的创始人为吉多·范罗苏姆(Guido van Rossum),这一两年在国内很流行,应用很广泛. 二.Python的基础知识(1) 1 ...
- python基础篇实战
1. 判断下面的结果 # 1. 判断下面的结果 # 1 > 1 or 3 < 4 or 4 > 5 and 2 > 1 and 9 > 8 or 7 < 6 pri ...
- Python基础教程 - Tdcqma
1.1 普通字符串 1.21 错误与异常 1.41 XXXXXX 1.61 XXXXXX 1.81 XXXXXX 1.101 XXXXXX 1.2 转义字符串 1.22 装饰器 1 ...
- python基础之列表、字典、元祖等 (二)
一.作用域 if 1==1: name = 'weibinf' print name 下面的结论对吗? 外层变量,可以被内层变量使用 内层变量,无法被外层变量使用 二.三元运算 result = 值1 ...
- python基础(二)----数据类型
Python基础第二章 二进制 字符编码 基本数据类型-数字 基本数据类型-字符串 基本数据类型-列表 基本数据类型-元组 可变.不可变数据类型和hash 基本数据类型-字典 基本数据类型-集合 二进 ...
随机推荐
- C++ 类再探
关于类的一些遗漏的点. #include <iostream> #include <typeinfo> #include <string> using namesp ...
- nginx__的简单搭建和 wsgi
4 部署 1 配置 uwsig(配置文件) pip3 install uwsgi 1 mkdir uwsgi 2 cd uwsgi 3 touch test_uwsig.ini [uwsgi] # 指 ...
- 异常-Exception in thread "main" net.sf.jsqlparser.parser.TokenMgrError: Lexical error at line 1, column 596. Encountered: <EOF> after :
1 详细异常 Exception in thread "main" net.sf.jsqlparser.parser.TokenMgrError: Lexical error at ...
- Vs2017 NetCode EF Mysql 控制台应用
1 运行环境 vs2017 NetCode2.0 2 NuGet MySql.Data.EntityFrameworkCore 8.0.18 Json.Net 1.0.16 3 源代 ...
- k2系列-开发篇
上一篇讲到K2安装的具体操作,本篇我们具体讲一下在VS环境下如何开发K2工作流. 常用工具控件说明: 节点关联线:流程各节点之间的关联线 客户端节点:流程的基本元素 服务器端节点:流程的完成标识节点 ...
- PAT Basic 1078 字符串压缩与解压 (20 分)
文本压缩有很多种方法,这里我们只考虑最简单的一种:把由相同字符组成的一个连续的片段用这个字符和片段中含有这个字符的个数来表示.例如 ccccc 就用 5c 来表示.如果字符没有重复,就原样输出.例如 ...
- layer学习
layer版本v2.1 1,layer的alert可以传标题的: layer.alert("测试layer弹窗===========", {title:"温馨提示&quo ...
- 深度解析Graph Embedding
Graph Embedding是推荐系统.计算广告领域最近非常流行的做法,是从word2vec等一路发展而来的Embedding技术的最新延伸:并且已经有很多大厂将Graph Embedding应用于 ...
- Java与CC++交互JNI编程
哈哈,经过了前面几个超级枯燥的C.C++两语言的基础巩固之后,终于来了到JNI程序的编写了,还是挺不容易的,所以还得再接再厉,戒骄戒躁,继续前行!! 第一个JNI程序: JNI是一种本地编程接口.它允 ...
- jpa 如果返回java对象,会自动更新对象值(坑!!)
//上一段示例代码List<Member> memberList = memberDao.findByLoginNameIn(names);for (Member m : memberLi ...