php 大括号-编程高手原来是这样来的,一篇文章带你走进前辈的世界

2023-08-29 0 6,148 百度已收录

1.Python能做什么?

(图片来源于网络图)

一种编程语言通常可以有多种应用方式,其中一些是更常用的,一些是极其常见的。 上图中红色标注的部分是Python非常常用的区域。 首先,Python可以用于简单的脚本编程,比如使用Python编译2048小游戏或者12306手动购票软件。 其次,可以使用Python进行系统编程,开发系统应用程序。 第三点,Python比较常用的功能之一就是开发网络爬虫。 网络爬虫的目的是收集数据,即从互联网上收集数据。 当然,网页爬行的难度并不在于爬虫本身,因为网站采取了各种反爬虫措施来防止被爬回来,而如果想要继续从网站爬取数据,就需要解决那些反爬虫的问题。 -爬虫措施,所以网络爬虫的难点就在于反爬虫的突破和处理。 第四,Python在WEB开发中使用非常普遍,可以使用Python来开发WEB网站,比如个人博客、在线教育网站、峰会等。 第五点,在运维方面,可以使用Python进行自动化运维,通过编写Python脚本可以实现服务器集群的自动管理。 第六,Python可以用于网络编程,比如Socket编程。 第七点,Python最常用的方向之一是数据挖掘、机器学习等大数据和人工智能领域的程序开发。 例如,在人工智能领域,可以使用Python轻松实现算法模型,并且可以使用Python轻松处理相应的数据。

作为该系列的第一篇文章,本文将与您分享Python的基础知识。 学习Python基础知识的第一步是了解Python能做什么。 通过前面的内容,你可以了解到Python语言可以做很多事情,或者可以说Python基本上是一门全能语言。 Python在各个领域都很优秀,最重要的一点是Python比较容易学习。 总而言之,Python 是一门很棒的语言。

2.如何学习Python?

首先我想跟大家分享一些方法论。 我应该如何学习Python? 其实学习任何知识的方法都是相似的。 有些朋友习惯直接看书或者看视频。

系统学习,不搞“题海战术”

首先,想要学就一定要系统学,不要搞“问海战术”。 遇到新的知识,去查一下,你就知道了。 如此反复,就是所谓的“问海战术”。 越乱,因为太多的东西不系统地堆积在脑子里,极不可能使用,所以你需要系统地学习。 所谓系统学习,是指比如在学习基础知识的时候,可以先掌握数据类型、控制结构、函数、模块等,并将这些知识生成一个系统。 构建知识体系就像写一本书。 在写书的过程中,不可能想到哪儿就讲到哪儿,但应该有一个大概的框架。 系统学习的好处就是学习无论如何都不会混乱。 而且最初的系统可能还不是很完整。 例如,刚开始学习编程语言时,你可能不知道迭代器和生成器,但这不会影响知识体系的构建。 以及生成器,然后将这部分知识添加到知识体系中。 但这的前提是心里要有一个非常清晰的体系结构,所有学到的新知识都可以纳入到体系中。 如果遇到知识体系中没有的内容,可以进行相应的补充。 如果建立了一个非常清晰的架构,这样的学习方法会更有利可图。

不仅要“抄”,还要“亲”

其次,不仅要“模仿”,还要“模仿”。 “临摹”是练习绘画的一种手段。 所谓“衬”,就是看贴纸上的文字,根据印象写在纸上,并尝试再现贴纸上的文字; 薄薄的一层白纸,然后顺着里面的字直接描画。 “临”和“仿”中,后者更为简单。 其实学习任何知识都是一样的,不仅要“抄袭”,更要“模仿”。 在学习Python等编程语言时,有些朋友可能会边看视频边学习,所以即使不可取,比较好的同学也会跟着视频看视频后重新敲代码,但这只是一个过程” “磨”应该以“临”步骤为基础,即关掉视频、合上书后,借助记忆复现代码,思考一下你的代码需要实现什么功能,这样才能掌握知识真正被吸收了。 这样练习久了,你会发现自己的能力提高得很快。

通晓一切不如精于细,只有精才能通透一切

第三种学习方法,不如能够掌握一切,只有一个人才能掌握一切。 你在学习的时候可能会遇到很多框架,但是似乎并不需要掌握所有的框架。 比如爬虫,可以学习Scrapy、urllib等框架。 事实上,没有必要掌握所有框架。 你可以在学习的过程中深入掌握其中的一两个,然后你会发现所有的框架都是密不可分的。 掌握一两个框架后,其他框架就会很容易掌握。 学习编程语言也是如此。 当你精通PHP或者Java的时候,你可以快速学习Python,但是如果你同时学习Java、Python、PHP,最终你可能并不精通每种语言。 其实,在基础阶段开始的时候,学习过程的曲线会上升得很慢,但是一旦开始,进步就会很快,所以在学习基础的时候一定不要着急。

用心学习,避免浮躁

第四个学习方法是遵循儒家思想,避免浮躁。 学习的时候一定要全神贯注,不要着急,尽量去掌握和掌握知识。

3.Python句型基础练习

在Python句子的基础实战中,我会和大家分享数据类型、控制结构、函数和模块、文件操作和数据库操作、异常处理等。

Python 基础知识入门

Python中的输出直接使用print()函数。 如果在 Python 文件中重复 print("Hello Python") 四次,则输出将是“Hello Python”四次。 如果你想禁用某行代码,可以使用注释。 Python 中有两种常见的注释方案。 第一个是单行注释。 在行首添加“#”,这样这行代码就会被注释掉; 第二个是多行注释。 多行注释通常使用“'''”或“”“””(三个逗号),只需在需要注释的代码段的开头和结尾添加三个逗号即可。

数据类型

在学习任何编程语言时,您需要了解该编程语言有哪些数据类型。 在Python中,常见的数据类型包括数字、字符串、列表、元组、集合和字典。

数字:它是一个物理数字。 例如“a=7”就是将数字7赋给a,这里的等号表示形参。 如果想检查对应数​​据的类型,可以使用type()函数来检查,例如7表示int整数,7.0表示float。

字符串:字符序列称为字符串。 字符串通常使用冒号组成,这里可以使用单冒号或双冒号。 例如:

a1='abc'

a2=“abc”

a3='''ab

C'''

上面代码表达的内容是一样的,不同的是使用单冒号和双冒号引起的内容不能直接换行,但是可以使用三逗号。

列表:存储多个元素的容器。 列表中的元素可以重新参数化,这意味着列表中的元素可以更改。 通过“[]”可以实现列表的建立,列表中可以放置数据。 例如:a=[] 表示a 是一个空列表。 再比如a=[a1,a3],列表中的每个元素都用冒号分隔,列表a包含两个元素a1和a3。 取出里面的元素可以通过下标来实现,比如a[1]可以取出a1的值。 列表中的元素可以重新定义。 例如,使用a[1]="hello"可以使形参指向前面a[1]的位置,这意味着列表中的元素是可以改变的。

元组:存储多个元素的容器,但元组中的元素不能重新参数化。 比如c=(7,"cd",9),c存储的是一组数据,如果想把c中的任意位置改成其他数据,是不允许的,因为元组中的数据不能被修改。 因此,当数据安全性要求较高时,通常会使用元组,这也是元组和列表的区别。

字典:字典相当于一个关联链表。 所谓关联链表,就是需要存储一对信息的字段。 列表和元组中存储的元素都是一个,字典中存储的元素是一对信息如d={"name":"weiwei","sex":"boy","job": “老师”}就像这样的{key:value, key:value, ...}。 取值时直接使用字典名[“对应键值”]即可。 例如,对于原告d字典,使用d[“name”]获取值“weiwei”。

集合:集合也是用来存储一组数据的,但是集合的特点是不允许有重复的元素,这个你在中学的时候就已经学过了。 因此,集合的一个非常简单的应用就是去重。 这种方法之所以简单,是因为重复数据删除的实现方式有很多种,比如布隆过滤器,这是非常好的重复数据删除形式。 在Python中,可以直接通过set来改进集合,比如e=set("abcdefgabc"),通过“{}”存储集合,但元素直接存储在大括号上方。 而当你输出e时,你会发现原来的重复内容只保留了一项。 另外,集合还可以用于差分运算,如e=set("abcgjkhsgkjha")、f=set("jikhsdghsdueigdsfzau")以及直接使用g=ef来获取e和f的差。

操作员

以上数据类型归根结底都是数据。 数据是静态的,通过算子的操作可以使这些数据动态化。 Python 中的运算符有哪些? 第一个是你非常熟悉的“+-*/%”。 这些运算都满足物理定律。 除了“+-*/%”之外,还有字符串连接符“+”。 如果要连接两个字符串,只需要使用“+”即可。

缩进问题

有些同事可能对Python的缩进感到恼火,认为缩进很麻烦,而且很容易出错。 但事实上,缩进是非常漂亮的。 当你打开一个Python项目时,你会发现一种强烈的层次感,感受到代码的美感。 哪些代码属于同一级别,一目了然。 缩进需要掌握的规律是最初的代码冻结。 第二点是同级代码在同一个缩进范围,下一级代码在下一个缩进范围。 掌握了缩进规则后,编写Python代码就会变得很容易。

控制结构

所谓控制结构就是程序的执行结构。 程序可以像日志一样顺序执行,也可以通过跳转、循环、分支的方式执行。 这些不同的执行方法称为控制结构。 其实Python中最常用的控制结构只有三种:序列结构、选择结构、循环结构。 当然,还有一些不太常用的控制结构例如中断结构。

不用讲顺序结构,只要按照顺序写,程序就会按照顺序执行。 在Python中,分支结构一般使用if语句来实现。 如果if的条件为真,则执行下面相应的代码,否则继续查找是否有分支结构。 如果有则继续执行,否则执行这部分内容; if if 如果条件为假,则不会执行下面相应的代码。 示例代码如下:

a=1000b=1if(a>19 and a<30):    print(a)    if(b9 and a9 and a<=19")elif(a<9):    print("a<9")else:    print("gsdajk")

上面的代码中,第3行的if条件判断为true,程序会执行第4行到第6行的代码。如果第3行的if判断为false,则继续查找下面的分支。 第7行和第9行都有elif,意思是当不满足if时,如果满足elif的条件,就会执行elif下面的代码。 有一个else,意思是当不满足上述条件时,执行else下面的代码。 上面的代码最终会输出“gsdajk”。 这里值得说明的一点是,如果实际情况不需要的话,可能没有elif、else等语句,即可以单独使用if语句。

循环结构也是一个极其重要的结构。 在Python中,循环结构也有相应的实现方式,常用的有两种:while和for语句。 while语句的格式如下:

a=0while(a<10):    print("hello")    a+=1

先写while条件,所谓条件就是while括号里的表达式。 如果条件为真,则说明满足了while的条件,这样就会执行while下面的代码段,而且执行不会只结束一次,而是只要while循环的条件还在满意了,这段代码仍然会执行。 上面的代码中,a的初始值为0,循环结构会复制“hello”并提示a加1,当a

除了while循环之外,还有for循环。 for循环的写法略有不同。 常用的格式是for i in x,x一般是一组数据。 for循环遍历列表的示例如下,程序将循环遍历输出列表中的每个元素。

a=["aa","b","c","d"]for i in a:    print(i)

正则循环的写法是for i in range(),表示从X到Y。例如for i in range(2,5)遍历2、3、4。这里值得注意的是,最后一个元素无法遍历,本例中也无法遍历5。下面的代码将输出“hello”10次。

for i in range(0,10):    print("hello")

中断结构是一种特殊的控制结构,就是在程序执行过程中,一般来说是在循环过程中进行中断。 通常,中断结构体有两种写法:break和Continue。 break的意思是直接退出循环,整个循环就会被中断。 continue是指中断一个周期,继续下一个周期。

a=["aa","b","c","d"]for i in a:    if(i=="c"):        break    print(i)

上面的代码使用break中断循环,使用i循环a列表,如果i=="c"则中断循环,直接break。 上面代码的结果是输出aa和b,但是c后面的元素不会输出,因为只有遍历到c时循环才会中断,然后整个循环就会终止。

a=["aa","b","c","d"]for i in a:    if(i=="c"):        continue    print(i)

而当break换成Continue时,运行这段代码的输出不仅是aa、b,还有d,因为Continue只是打断了这句循环,不会影响下一次循环。 当上面的代码遍历到链表中的元素c时,就会被中断,因此c不会被输出,然后继续循环。

使用Python输出九九乘法表

for i in range(1,10):    for j in range(1,i+1):        print(str(i)+"*"+str(j)+"="+str(i*j),end="  ")    print()

如上面代码所示,乘法口诀表分为行和列控制,最内层循环控制行数,所以内层循环是for i in range(1,10),也就是从1开始遍历到10.对于列的控制,需要一个外循环,这显然是在i层下面再多一层循环,比如上面代码中的for j in range(1,i+1),因为遍历到的时候1、结果是1*1,不需要继续写1*2,所以这里只需要遍历到i+1即可。 具体输出只需要进行简单的物理操作和字符串拼接即可。 打印输出后,如果没有通过结束控制,会默认替换一行,所以输出结果不够美观。 上面代码的写法可以提示同一行打印输出,结果之间用空格分隔。 而完成j的遍历后,需要另起一行,所以需要print()。

(图片来源于网络图)

了解了乘法口诀表的实现之后,大家就应该思考如何将乘法口诀表倒序输出,形成倒三角形的方法。 显然,您需要做的就是对代码进行以下更改:

for i in range(9,0,-1):    for j in range(i,0,-1):        print(str(i)+"*"+str(j)+"="+str(i*j),end="  ")    print()

对于控制结构,我们需要重点抓循环和分支。

功能与模块

函数相当于功能的封装。 例如,某个程序段可能被频繁调用。 如果不封装函数,每次调用函数时程序都需要重新实现,会带来很多麻烦。 但现在你可以将这个频繁调用的程序段封装成一个函数,如果你需要实现这个功能,可以直接调用这个封装的函数。 接下来给大家分享一下功能相关的内容。

作用域:作用域一般指变量的作用域。

i=10def func():    print(i)func()

如上面的代码,第10个形参给i后,i的作用域就是它后面的所有代码,直到程序结束,那么覆盖的作用域就是变量i的作用域。 在下面的代码中,当 i 定义在函数上方且未使用 global 关键字声明时,一般情况下其作用范围仅限于该函数。

def func():    i=10    print(i)func()

在上面的代码中,i的范围仅限于func()函数。 而如果变量是在函数外部定义的,则可以在函数内部使用该变量,但不能直接更改变量的值。 更改它会导致命名空间冲突并出现错误。 上面问题的答案其实很简单,就是用global关键字将变量声明为全局变量。

i=10def func():    global i    print(i)func()

上面代码中的i是一个全局变量。 当变量声明为全局变量时,它将不受局部变量的影响。

函数定义的格式:函数定义的格式就是如何将一串代码封装成函数的形式。 函数由def关键字定义,函数定义格式如下:

def 函数名(参数):    函数体

php 大括号-编程高手原来是这样来的,一篇文章带你走进前辈的世界

以下代码构造函数 abc()。 函数的参数可以省略,但需要注意的是,即使没有参数,也需要括号。 示例代码相当于封装了两个打印语句。 如果想一次性执行上面两个打印语句,只需要调用abc()函数即可。 调用函数时只需要使用“函数名(参数)”即可。

def abc():    print("abcde")    print("456")abc()

函数参数:如果函数没有参数,那么这个函数是固定的,因为函数内部的代码是固定的,所以无论怎么执行,结果都是一样的。 以及如何推广功能实现具体问题具体分析? 这时就可以传入相应的参数,让函数根据传入的参数进行相应的数据处理。 参数相当于函数与外界通信的socket。 参数分为数组和左值。 一般来说,定义函数时,使用的参数都是数组。 所谓数组就是“形参”; 函数调用时,使用的是左值,所谓的形参就是“实参”。 下面的代码段实现了两个数据比较功能:

def func2(a,b):    if(a>b):        print(str(a)+"比"+str(b)+"大")    else:        print(str(b)+"比"+str(a)+"大或者"+str(b)+"与"+str(a)+"相等")

上面的代码封装了一个名为func2的函数,该函数传递两个参数。 参数的名称可以自己定义,根据具体的数组来判断函数。 上述代码中,如果a>b,则输出“a大于b”,否则,输出“b大于a或b等于a”。 对于上述函数,可以在每次调用时传入不同的参数,然后根据具体情况进行分析,就可以得到相应的结果。 综上所述,函数就是封装一串代码,也就是函数通常用来封装函数。

模块:模块相当于重新封装了一个功能。 Python中有一些常用的模块,这些常用的模块存在于Python安装目录下,并且有一个名为“lib”的目录,该目录通常用来放置模块,也可以自己编写模块,所以模块是称为自定义模块。

如果想要在Python中使用模块,需要掌握两个知识点:导入和使用。 一般来说,导出模块有多种方法。 第一种方式是使用import语句直接导出某个模块,第二种方式是只从某个模块导出某一种方式。 如下面的代码所示,可以从time模块导出sleep方法,也可以使用from time import *导出time模块的所有方法。

import randomfrom time import sleepfrom time import *a=["中奖","不中奖","不中奖"]print(random.choice(a))

random模块主要用于随机数的处理。 上面的代码使用random实现了一个抽奖功能。 首先导出随机数,然后构建一个列表,其中包含“中奖”和“不抽奖”选项。 Random.choice(a)会随机选择列表a中的一个选项并输出相应的结果。 time模块还有一些常用的函数,比如time.sleep(),它实现了延迟功能。 如果要更改某个模块的源代码,只需在lib目录中找到对应的模块并进行更改即可。

另外,第三方模块通常放在lib目录下的site-packages中。

3、文件操作和数据库操作

文件操作

文件的打开:使用Python打开文件的格式为open(文件地址、操作方法)。 open函数的参数中的操作方法有:w(写入)、r(读取)、b(二进制)、a(追加),其中a表示可以实现追加写入,这样原来的内容就不会被写入丢失的。 如果使用w,则是新的写入,之前的内容会被覆盖。

fh=open("D:/我的教学/Python/20180120内训/第1天代码/文本1.txt","r",encoding="utf-8")#文件读取data=fh.read()line=fh.readline()

上面代码中的操作模式是“r”,即读取文档,可以通过encoding来设置编码格式,比如utf-8或者gbk等,这样就可以打开文件了。 之后就可以通过read()或者readline()来读取了。 read()是指读取文件的全部内容,readline()是逐行读取。

x=0fh=open("D:/我的教学/Python/20180120内训/第1天代码/文本1.txt","r",encoding="gbk")while True:    line2=fh.readline()    if(len(line2)==0):        break    print(line2)    x+=1fh.close()

上面的代码中,readline()用于逐行读取文件。 这里,通过设置一个while循环来读取文件的全部内容。 如果某一行的宽度为0,则说明该文件已经被读取,此时可以中断。 如果不为0则表示还有内容,可以继续读下一行。 上面的代码中,变量x还用于统计文件被读取了多少次php 大括号,并在文件读取完毕后通过fh.close()关闭文件。 结果输出后,还可以通过x得到读取的总行数。

文件写入(w/a+):写入文件时,open函数中操作模式的参数应为“w”或“a”,参数中的文件地址为输出地址。 如下代码片段所示:

data="一起学Python!"fh2=open("D:/我的教学/Python/20180120内训/第1天代码/文本3.txt","w")fh2.write(data)fh2.close()

文件地址中不能使用“”,而应使用“\”或“/”。 打开文件并使用write方法写入数据后,关闭文件即可。 如果操作方式为“w”,则会替换原来的文件内容,即新写入的意思,如果使用“a+”,则会在之前内容的基础上添加。

数据库操作

Python不仅用来操作文件,还经常用来操作数据库。 本文以MySQL数据库的操作为例进行讲解。 在使用Python操作数据库之前,需要安装pymysql模块。 在cmd命令行中输入“pip install pymysql”即可完成模块的安装。

安装pymysql后,需要对源代码进行一定的修改,因为使用其默认编码时会出现错误。 在site-packages下找到pymysql,找到connections.py文件,搜索“charset=”关键字定位到需要改的地方。

connections.py中的charset=部分原本是未编码的,现在加上了编码,这样就不会出现错误了。 这里的编码通常建议使用“utf8”。 需要注意的是,写“utf8”而不是“utf-8”,通过这个设置基本可以解决乱码问题。

使用Python操作数据库的前提是MySQL数据库。 至于MySQL数据库的安装和配置,不是本文的重点。 你可以自己学习。 拥有 MySQL 数据库后,您应该首先连接到数据库。

import pymysqlconn=pymysql.connect(host="127.0.0.1",user="root",passwd="root",db="mypydb")#执行sql语句-无返回conn.query("INSERT INTO mytb(title,keywd) VALUES('new title','23456')")conn.commit()#执行SQL语句-有返回cs=conn.cursor()cs.execute("select * from mytb")for i in cs:    print("当前是第"+str(cs.rownumber)+"行")    print("标题是:"+i[0])    print("关键词是:"+i[1])conn.close()

如上面代码所示,可以使用pymysql下的connect方法进行连接。 connect方法中参数的含义:host代表主机IP地址php 大括号,user代表用户名,passwd代表密码,db代表选择的数据库。 Python中操作数据库也用到SQL语句,这里的SQL语句可以分为两种,一种不返回结果,一种返回结果。 例如,插入数据等操作不返回结果,而查询则返回结果,这两个语句的用法是不同的。 对于不返回结果的SQL语句,只需要使用query方法执行即可。 上面的代码是指插入一条数据。 插入完成后,可以使用commit方法完成提交; 对于返回结果的SQL语句,首先需要通过conncursor方法构造一个游标,然后使用execute方法执行该SQL语句,这样就可以遍历Cursor,将查询结果存储在cs中,在cs中使用for i即可将查询结果一一取出。

异常处理

Python 中经常出现这样或那样的错误,有些错误是不可避免的,甚至是未知的。 对于未知错误,Python执行过程中遇到未知错误时会手动终止。 而如果想让程序在遇到错误后继续运行,就需要使用异常处理。 异常处理的格式如下:

try:    程序except Exception as 异常名称:    异常处理部分

try之前的代码段是尝试执行这个程序,如果出现异常,就会触发 except 代词。 except的前面就是对应的Exception类型。 这里有一种“必杀技”,就是直接使用Exception——一般异常。 只要发生异常,Exception就会捕获它。 as的意思是给异常起一个别名,下面是对应的异常处理代码。

try:    for i in range(0,10):        print(i)        if(i==4):            print(jkj)    print("hello")except Exception as err:    print(err)

如上面的代码段,当i循环到4时会出现异常,因为程序中没有定义jkj。 如果没有异常处理,程序将直接终止。 使用异常处理后,当发生异常时,不会直接标记为红色,而是输出异常。

异常处理的目的是为了让程序在发生异常时能够继续执行,所以需要尽可能的细化异常,让异常处理与需要监控的代码更加紧密地结合在一起。 上述代码的异常处理细化如下:

for i in range(0,10):    try:        print(i)        if(i==4):            print(jkj)    except Exception as err:        print(err)print("hello")

这样,虽然出现异常,但仍可以继续下一个循环。 因此,需要注意的是,异常处理需要尽可能详细,并且尽可能放在代码的内层。 在内层实现完美的异常处理可能很难。

4.Python中的面向对象编程

以上内容已经帮助大家从句子层面了解了Python的基础知识,接下来我将与大家分享Python面向对象编程的实战。 Object-oriented programming is usually different from process-oriented, which is more suitable for the development of small and medium-sized projects.

Know classes and objects

Object-oriented programming is mainly realized through "classes" and "objects". For example, a specific person is an "object", Xiao Ming is an object, and Xiao Zhang is also an object, and the "class" can only be produced by concreting the common characteristics of the "objects". For example, Xiao Zhang and Xiao Ming are both "persons". ", then "person" is a "class", so "class" means type. It's just that the object-oriented classes are custom. "Class" is concrete, and "object" is concrete.

If you want to build a class, you can use the class array to declare:

class 类名:    类里面的内容

The following sample code creates a class named cl1, and the content in the class is "pass", which is a placeholder and will not play any role, but if there is no pass, an indentation error will occur.

class cl1:    pass

To instantiate a class into an object, you can use parentheses in front of the class name and directly give a parameter to an object, such as a=cl1(), then a is an object of the class cl1.

构造函数

Constructors are also called constructors. The so-called construction method is a method specially used for initialization. It is also necessary to introduce self here. Generally, the method in the class must add the self parameter, which represents the class itself. In Python, __init__(self, parameter) is the construction method, and the name of the construction method is fixed, just add self and the corresponding parameters above the brackets. The actual meaning of the constructor is initialization.

class cl2:    def __init__(self):        print("I am cl2 self!")

As shown in the above code, the cl2 class has a construction method, which will output "I am cl2 self!", which means that as long as the class creates an object, it will first execute this string of codes. If you want to add parameters to the construction method, just add parameters before self, and the parameters are separated by colons.

class cl3:    def __init__(self,name,job):        print("My name is "+name+" My job is "+job)

This is equivalent to adding parameters to the class, because the corresponding parameters need to be passed when instantiating the class. It should be noted here that adding parameters to the class is not adding parameters in the brackets in the class definition. The brackets in the class definition are used for inheritance, not for adding parameters. The adding parameters here refer to Add parameters when instantiating.

Attributes and Skills

Attributes are equivalent to variables in a class, methods are equivalent to functions in a class, attributes are static, and methods are dynamic. For example, for the category of "person", the attributes of hands and head are all attributes, while the ability of people to speak and write are all methods. On Python, the use of attributes is usually self. 属性。

class cl4:    def __init__(self,name,job):        self.myname=name        self.myjob=job

In the construction method of the cl4 class of the above code, you can see that two parameters are passed, and then the properties of the class are made in the constructor. Next, just call the self. attribute directly after using it later.

class cl5:    def myfunc1(self,name):        print("hello "+name) class cl6:    def __init__(self,name):        self.myname=name    def myfunc1(self):        print("hello "+self.myname)

As shown in the above code, the method is the function above the class, including __init__() is also a method. The above cl6 can explain to you why self can still exist. __init__() and myfuncl() in cl6 are two functions. According to the principle, myname is a local variable in different functions and cannot be used universally. So if you want to pass local variables between multiple functions, then one way is to store the variables on the class, that is, create a self array, store the variables on the class, and self provides an area for storing variables , which is the necessity of the existence of self.

继承

Simply put, inheritance is to take all the attributes and skills in a class and use them directly. For example: a family has father, mother, son and daughter. The father can speak, the mother can write, and the eldest daughter inherits Mother, the daughter inherits the father at the same time, and has the new ability to listen, the younger son inherits the mother, but optimizes (or slows down) the mother's speaking ability, how should such a model be constructed? The inherited class is called a subclass or a parent class, and the inherited class is called a generic type. So the services in the model are all generic, and both son and daughter are generic.

First create the mother class, whose function is to speak:

class father():    def speak(self):        print("I can speak!")

Next, build the base class of the eldest daughter:

class son(father):    pass

This class inherits the mother class, so father is written in parentheses when the son class is defined. Although there is no method written in the son class, it still has the speak method because it integrates all the methods of the father class.

The mother class has the ability to write:

class mother():    def write(self):        print("I can write")

The daughter class inherits the husband and son at the same time, which belongs to multiple inheritance. Multiple inheritance only needs to add multiple parameters when class definition. In addition to inheriting two subclasses, she also has a new ability to listen, so you only need to write a new method in this class.

class daughter(father,mother):    def listen(self):        print("I can listen!")

而小儿子发生了变异,这里的变异指的是重载或则重画。小儿子承继了母亲类,但是优化了说的能力,所以须要实现一个同名方式,而在实际使用的时侯也会调用自己所重载的speak技巧。

class son2(father):    def speak(self):        print("I can speak 2!")

五、练熟基础:2048小游戏项目的实现与实战

上面为你们介绍的Python知识十分零散,但是也十分重要,既然想要把握Python,就须要使用实际项目进行巩固和提高,当将项目实现以后,对应的能力也就自然把握了。

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

悟空资源网 php php 大括号-编程高手原来是这样来的,一篇文章带你走进前辈的世界 https://www.wkzy.net/game/176475.html

常见问题

相关文章

官方客服团队

为您解决烦忧 - 24小时在线 专业服务