python用类名直接调用方法_Python自学:基础知识点汇总(四)

点击上方蓝字“Python圈子”,进行关注~

Python基础06 函数

函数最重要的目的是方便我们 重复使用相同的一段程序。 将一些操作 隶属 于一个函数,以后你想实现相同的操作的时候,只用调用函数名就可以,而不需要重复敲所有的语句。   函数的定义 首先,我们要定义一个函数, 以说明这个函数的功能。
def square_sum(a,b):
   c = a**2 + b**2    return c
这个函数的功能是求两个数的平方和。首先,def,这个关键字通知python:我在定义一个函数。square_sum是函数名。括号中的a, b是函数的 参数,是对函数的 输入。参数可以有多个,也可以完全没有(但括号要保留)。我们已经在循环和选择中见过 冒号和 缩进来表示的隶属关系。 c = a**2 + b**2         # 这一句是函数内部进行的运算 return c                # 返回c的值,也就是输出的功能。Python的函数允许不返回值,也就是不用return。return可以 返回多个值,以逗号分隔。相当于返回一个tuple(定值表)。 return a,b,c           # 相当于 return (a,b,c) 

在Python中,当程序执行到return的时候,程序将停止执行函数内余下的语句。return并不是必须的,当没有return, 或者return后面没有返回值时,函数将自动返回None。None是Python中的一个特别的数据类型,用来表示什么都没有,相当于C中的NULL。None多用于关键字参数传递的默认值。

 函数调用和参数传递 定义过函数后,就可以在后面程序中使用这一函数
print square_sum(3,4)
Python通过 位置,知道3对应的是函数定义中的第一个参数a, 4对应第二个参数b,然后把 参数传递给函数square_sum。(Python有丰富的参数传递方式,还有关键字传递、表传递、字典传递等,基础教程将只涉及位置传递)函数经过运算,返回值25, 这个25被print打印出来。 我们再看下面两个例子 361eb323b053b5a3f77ede6a5792cd23.png第一个例子,我们将一个 整数变量传递给函数,函数对它进行操作,但 原整数变量a不发生变化。第二个例子,我们将一个 表传递给函数,函数进行操作, 原来的表b发生变化。对于基本数据类型的变量,变量传递给函数后,函数会在内存中复制一个新的变量,从而不影响原来的变量。(我们称此为 值传递)但是对于表来说,表传递给函数的是一个指针,指针指向序列在内存中的位置,在函数中对表的操作将在原有内存中进行,从而影响原有变量。(我们称此为 指针传递)

Python基础07 面向对象的进一步拓展

调用类的其它信息 上一讲中提到,在定义方法时,必须有self这一参数。这个参数表示某个对象。对象拥有类的所有性质,那么我们可以 通过self,调用类属性。 3bf2e9bcb8868ca6208cb437baa73f62.png这里有一个类属性laugh。在方法show_laugh()中,通过self.laugh,调用了该属性的值。还可以用相同的方式调用其它方法。方法show_laugh(),在方法laugh_100th中()被调用。通过对象可以修改类属性值。但这是危险的。类属性被所有同一类及其子类的对象共享。类属性值的改变会影响所有的对象。 __init__()方法 __init__()是一个 特殊方法(special method)。Python有一些特殊方法。Python会特殊的对待它们。特殊方法的特点是名字前后有 两个下划线。如果你在类中定义了__init__()这个方法,创建对象时,Python会 自动调用这个方法。这个过程也叫 初始化。 5cb5ad5bec9fe8722e00710ccfeba55b.png这里继承了Bird类,它的定义见上一讲。 屏幕上打印:
We are happy birds.Happy,Happy!
我们看到,尽管我们只是创建了summer对象,但__init__()方法被自动调用了。最后一行的语句(summer = happyBird...)先创建了对象,然后执行:summer.__init__(more_words)'Happy,Happy!' 被传递给了__init__()的参数more_words  对象的性质 我们讲到了许多属性,但这些属性是 类的属性。所有属于该类的对象会共享这些属性。比如说,鸟都有羽毛,鸡都不会飞。在一些情况下,我们定义对象的性质,用于记录该对象的特别信息。比如说,人这个类。性别是某个人的一个性质,不是所有的人类都是男,或者都是女。这个 性质的值随着对象的不同而不同。李雷是人类的一个对象,性别是男;韩美美也是人类的一个对象,性别是女。  当定义类的方法时,必须要传递一个self的参数。这个参数指代的就是类的一个对象。我们可以通过操纵self,来修改某个对象的性质。比如用类来新建一个对象,即下面例子中的li_lei,那么li_lei就被self表示。我们通过赋值给 self.attribute ,给li_lei这一对象增加一些 性质 ,比如说性别的男女。self会传递给各个方法。在方法内部,可以通过引用self.attribute,查询或修改对象的性质。 这样,在 类属性 的之外,又给每个对象增添了 各自特色的性质 ,从而能描述多样的世界。

2d9181982826508a936f9c27a48364fa.png

在初始化中,将参数input_gender,赋值给对象的性质,即self.gender。 li_lei拥有了对象性质gender。gender不是一个类属性。Python在建立了li_lei这一对象之后,使用li_lei.gender这一对象性质,专门储存属于对象li_lei的特有信息。 对象的性质也可以被其它方法调用,调用方法与类属性的调用相似,正如在printGender()方法中的调用。

Python基础8 反过头来看看

最初的“Hello World”,走到面向对象。该回过头来看看,教程中是否遗漏了什么。我们之前提到一句话,"Everything is Object". 那么我们就深入体验一下这句话。 需要先要介绍两个内置函数, dir()和 help()dir()用来查询一个类或者对象所有属性。你可以尝试一下>>>print dir(list)help()用来查询的说明文档。你可以尝试一下>>>print help(list)(list是Python内置的一个类,对应于我们之前讲解过的列表) 

list是一个类

在上面以及看到,表是Python已经定义好的一个类。当我们新建一个表时,比如:>>>nl = [1,2,5,3,5]实际上,nl是类list的一个对象。 实验一些list的方法: >>>print nl.count(5)       # 计数,看总共有多少个5 >>>print nl.index(3)       # 查询 nl 的第一个3的下标 >>>nl.append(6)            # 在 nl 的最后增添一个新元素6 >>>nl.sort()               # 对nl的元素排序 >>>print nl.pop()          # 从nl中去除最后一个元素,并将该元素返回。 >>>nl.remove(2)            # 从nl中去除第一个2 >>>nl.insert(0,9)          # 在下标为0的位置插入9总之,list是一个类。每个列表都属于该类。Python补充中有list常用方法的附录。 

运算符是特殊方法

使用dir(list)的时候,能看到一个属性,是__add__()。从形式上看是 特殊方法(下划线,下划线)。它特殊在哪呢?这个方法定义了"+"运算符对于list对象的意义,两个list的对象相加时,会进行的操作。>>>print [1,2,3] + [5,6,9]  运算符,比如+, -, >, 方法。 尝试一下>>>print [1,2,3] - [3,4]会有错误信息,说明该运算符“-”没有定义。现在我们继承list类,添加对"-"的定义

2d9181982826508a936f9c27a48364fa.png

内置函数 len()用来返回list所包含的元素的总数。内置函数__sub__()定义了“-”的操作:从第一个表中去掉第二个表中出现的元素。如果__sub__()已经在父类中定义,你又在子类中定义了,那么子类的对象会参考子类的定义,而不会载入父类的定义。任何其他的属性也是这样。定义运算符对于复杂的对象非常有用。举例来说,人类有多个属性,比如姓名,年龄和身高。我们可以把人类的比较(>,  

下一步

希望你已经对Python有了一个基本了解。你可能跃跃欲试,要写一些程序练习一下。这会对你很有好处。但是,Python的强大很大一部分原因在于,它提供有很多 已经写好的,可以现成用的对象。我们已经看到了内置的比如说list,还有tuple等等。它们用起来很方便。在Python的标准库里,还有大量可以用于操作系统互动,Internet开发,多线程,文本处理的对象。而在所有的这些的这些的基础上,又有很多外部的库包,定义了更丰富的对象。比如numpy, tkinter, django等用于科学计算,GUI开发,web开发的库,定义了各种各样的对象。对于一般用户来说,使用这些库,要比自己去从头开始容易得多。我们要开始攀登巨人的肩膀了。 相关阅读: Python自学:基础知识点汇总(三) Python自学--基础知识点汇总(2) Python自学--基础知识点汇总(1)

注:原文源自网络

END c4916c6b6b80159311b91da2463578c8.gif

◆  一位月薪1.2w的北漂程序员真实生活

◆  程序员与产品经理的友谊:打成共识

◆  先从Python的这19个易错语法开始学习!

◆  学习Python后有哪些就业方向?

◆  作为一名程序员,谁没跳过槽,“6”招让你“空降”大厂

4ff228810d500c529e0cffd0957dab2a.png

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值