返回顶部
首页 > 资讯 > 后端开发 > Python >Python3.0科学计算学习之类
  • 624
分享到

Python3.0科学计算学习之类

科学 2023-01-31 00:01:56 624人浏览 八月长安

Python 官方文档:入门教程 => 点击学习

摘要

类:        python中的类是一个抽象的概念,甚至比函数还要抽象。可以把它简单的看作是数据以及由存取、操作这些数据的方法所组成的一个集合。类是Python的核心概念,是面向对象编程的基础。       类有如下的优点: 类对象是

类:

       python中的类是一个抽象的概念,甚至比函数还要抽象。可以把它简单的看作是数据以及由存取、操作这些数据的方法所组成的一个集合。类是Python的核心概念,是面向对象编程的基础。

      类有如下的优点:

类对象是多态的:也就是具有多种形态,意味着我们可以对不同的类对象使用同样的操作方法,而不需要额外编写代码。

    类的封装:类封装之后,可以直接调用类的对象来操作内部的一些类方法,不需要让使用者看到代码工作的细节。

    类的继承:类可以从其他类或者基类中继承它们的方法,直接使用。

(1) 类的定义:

     类是对现实世界中一些事物的封装,Python中定义类是通过class关键字,紧跟着的是类名(类名通常是大写字母开头的单词)和冒号,随后是定义类的类体代码。

类定义的语法格式如下:

class Classname(object):        #(object)表示该类是从哪个类继承下来的,通常如果没有合适的继承类,就使用object类,这是所有类最终都会继承的类。

    """documentation string"""

    <statement_1>

    <statement_2>

    ...

<statement-N>

示例1:类的定义

class People:

#定义基本属性

    name=''    #name、age是类的公有属性

age=0

#定义私有属性,私有属性在类外部无法直接进行访问,但是可以在内部使用self.__weight来调用。

__weighe=0

#定义构造方法,用于初始化类的内部状态,为类的属性设置默认值:

    def __init__(self,n,a,w):

        self.name=n

        self.age=a

        self.__weight=w

#定义一个函数,为类的函数,称为方法;它至少有一个参数self:

    def speak(self):

        print('%s is speaking:i am %d years old.'%(self.name,self.age))

#类调用

p=people('Tom',10,30)

p.speak()      #返回:Tom is speaking:i am 10 years old.

(2) 类属性与方法

使用类的主要原因之一是对象可以组合在一起并绑定在一个共同对象上。

如:q=RationalNumber(10,20)    #实例化(instantiation),创建p实例

q.numerator                #属性引用/访问(attribute access)

q.denominator

分子和分母是绑定到RationalNumber 类的实例的两个对象,它们被称为实例的属性。从对象引用的方式来看,“对象时类实例的属性”。

r=RationalNumber(10,20)

q.numerator=17

del r.denominator

表明一旦定义了一个实例,就可以设置、更改或者删除该特定实例的属性。注意:更改或删除属性可能会有不希望有的副作用,甚至可能使对象无效。

① 类的公有属性:public_attrs:符合正常的变量命名规则,开头没有下划线,在来的外部可以直接进行访问

② 类的私有属性:__private_attrs:由两个下划线开头,声明该属性为私有,不能在类的外部被使用或者直接访问。在类内部的方法中使用时的格式为:self.__private_attrs.

③ 类的构造方法:

__init__():叫做构造函数或者构造方法,它在生成一个对象时被自动调用。

如上例1中,p=people('Tom',10,30)语句就是调用__init__方法,将参数传递给self.name、self.age、self.__weight

要为示例类提供一些属性,即为其提供定义数据。在例中,该数据将是分子和分母的值。为此,必须定义一个方法__init__,用于初始化具有这些值的类。

示例2:

class RationalNumber:

    def __init__(self,numerator,denominator):

        self.numerator=numerator

        self.denominator=denominator      

###在说明添加到类中的特殊__init__函数之前,要展示RationalNumber对象的实例化。

 

q=RationalNumber(10,20)

print(q.numerator)     #返回 10

print(q.denominator)    

#返回 20

#类型RationalNumber的新对象通过使用类名称来创建,就像它是一个函数一样。

语句执行两个操作:首先创建一个空对象,然后将__init__函数应用到该空对象,即执行q.__init__(10,20).

__init__的第一个参数是指新对象本身。在函数调用中,其第一个参数被对象的实例所替代。第一参数的特殊作用体现在将其命名为self的惯例上。

④ 类的公有方法:

public_method()--在类的内部,使用def关键字可以为类定义一个办法,与一般函数定义不同,类方法必须包含参数self,且为第一个参数。self在Python中不是关键字,它代表当前对象的地址。

⑤ 类的私有方法:

__private_method():由两个下划线开头,声明该方法为私有方法,不能在类的外部进行调用。在类的内部调用时格式为self.__private_methods()

⑥ 单下划线(_):

以单下划线开始的成员变量叫作保护变量意思是只有类对象和子类对象自己能够访问到达这些变量。

⑦ 类的专有方法:

__init__:构造函数

__del__;析构函数,释放对象时使用

__repr__:打印,转换

__setitem__:按照索引赋值

__getitem__:按照索引获取值

__len__:获取长度、__cmp__:比较运算、__call__:函数调用、

__add/sub/mul/div/mod/pow__:加运算/减运算/除运算/求余运算/乘方运算。

__str__:字符串方法

其中:__repr__的特殊方法使我们能够定义对象在Python解释器中的表示方式

class RationalNumber:

    def __init__(self,numerator,denominator):

        self.numerator=numerator

        self.denominator=denominator

    def __repr__(self):

        return("{}/{}".fORMat(self.numerator,self.denominator))

q=RationalNumber(10,20)

print(q)     #只要输入q就会返回10/20。

 2. Python类与对象

(1) 认识其区别:Python里一切都是对象,实例是对象,类是对象,元类也是对象。实例是对象,创建实例的是类;类是对象,创建类的是元类。

在Python中,一个对象的特征称为属性,它所具有的行为称为方法。即,对象=属性+方法。

把具有相同属性和方法的对象归为一个类,例如:人类、动物、植物等都是类的概念。

类是对象的模板或者蓝图,类是对象的抽象化,对象是类的实例化。类不代表具体的事物,而对象代表具体的事物(类是对客观世界中事物的抽象,而对象是类实例化后的实体)。

(2) 对象的创建

创建对象的过程为实力化,当一个对象被创建后,包含三个方面的特性:对象的句柄、属性和方法。对象的句柄用于区分不同的对象。

例如:if __name__=="__main__"      #当程序作为主程序运行

      fruit=Fruit()            #实例化fruit:创建一个对象,创建了一个fruit对象

      fruit.grow()            #对象调用grow()方法

(3) 类对象支持两种操作:属性引用和实例化。类对象的属性引用使用标准的语法:obj.name.类对象创建后,类命名空间中所有的命名都是有效属性名。

在python中方法定义在类的定义中,但只能被类对象的实例所调用。调用一个方法的途径分三步:

l 定义类和类中的方法

l 创建一个或者若干个实例,即将类实例化

l 用所创建的实例调用方法

实例:

class MyClass:                #定义类和类中的方法

    """一个简单的类实例"""

    i=12

    def f(self):

        return("hello world")

#实例化类

MyClass1=MyClass()           

#访问类的属性与方法,MyClass1.i和MyClass1.f()都是有效的属性引用,分别返回一个整数和一个方法对象。

print("My Class类的属性i为:",MyClass1.i)

print("MyClass类的方法f输出为:",MyClass1.f())    #用创建的实例调用方法

#可以对类属性赋值,即可以通过给MyClass.i赋值来修改它

MyClass1.i=56

print("修改后My Class类的属性i为:",MyClass1.i)

(4) 类的属性:数据属性和特殊类属性。

数据属性:与局部变量一样,数据属性不需要声明,第一次使用时它们就会生成。

例如:类数据属性说明

class foo(object):

    f=100

print(foo.f)

print(foo.f+1)    #运行结果: 100

                                             101 

特殊类属性:

对任何类foo,它的部分特殊属性如下所示:

foo_name_   类foo的名字(字符串)

foo_doc_    类foo的文档字符串

foo_bases_    类foo的所以父类构成的元组

foo_module_    类foo定义所在的模块

foo_class_      实例foo对应的类

例如:

class MyClass(object):

    'MyClass 类定义'

    myVer='3.4'

    def showMyVer(self):

        print(MyClass.myVer)

print(dir(MyClass))

print(MyClass.__dict__)

#返回结果:

dir()返回的仅是对象属性的一个名字列表

['__class__', '__delattr__', '__dict__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__le__', '__lt__', '__module__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', '__weakref__', 'myVer', 'showMyVer']

__dict__返回的是一个字典,它的键是属性名,值是相应属性的数据值。

{'__module__': '__main__', '__doc__': 'MyClass 类定义', 'myVer': '3.4', 'showMyVer': <function MyClass.showMyVer at 0x00000000071B5F28>, '__dict__': <attribute '__dict__' of 'MyClass' objects>, '__weakref__': <attribute '__weakref__' of 'MyClass' objects>}

print(MyClass.__class__)          #返回MyClass

print(MyClass.__doc__)            #返回MyClass类定义

print(MyClass.__module__)         #__main__

 

实例属性:内建函数dir()可以显示类属性,同样还可以打印所有的实例属性。

class foo(object):

    pass

foo_1=foo()

print(dir(foo_1))

#返回结果:

['__class__', '__delattr__', '__dict__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__le__', '__lt__', '__module__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', '__weakref__']

--结束END--

本文标题: Python3.0科学计算学习之类

本文链接: https://lsjlt.com/news/182176.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • Python3.0科学计算学习之类
    类:        Python中的类是一个抽象的概念,甚至比函数还要抽象。可以把它简单的看作是数据以及由存取、操作这些数据的方法所组成的一个集合。类是Python的核心概念,是面向对象编程的基础。       类有如下的优点: 类对象是...
    99+
    2023-01-31
    科学
  • Python3.0科学计算学习之函数
    函数 函数允许程序的控制在不同的代码片段之间切换,函数的重要意义在于可以在程序中清晰地分离不同的任务,将复杂的问题分解为几个相对简单的子问题,并逐个解决。即“分而治之”。  Python的自建模块一般体现为函数。Python函数有如下特点...
    99+
    2023-01-31
    函数 科学
  • Python3.0科学计算学习之绘图(一
    基本绘图: (1)  plot是标准的绘图库,调用函数plot(x,y)就可以创建一个带有绘图的图形窗口(其中y是x的函数)。输入的参数为具有相同长度的数组(或列表);或者plot(y)是plot(range(len(y)),y)的简...
    99+
    2023-01-31
    科学
  • Python3.0科学计算学习之绘图(三
    matplotlib对象:  使用matplotlib的pyplot模块,可以供用户直接使用最重要的绘图命令。多数情况下,我们希望创建一个图形并且立即展示出来,但是有时如果生成要通过更改其属性来修改的图形,就需要用面向对象的方式来处理图形...
    99+
    2023-01-31
    科学
  • Python3.0科学计算学习之绘图(四
    绘制三维图: mplot3d工具包提供了点、线、等值线、曲面和所有其他基本组件以及三维旋转缩放的三维绘图。 1.散点的三维数据图 from mpl_toolkits.mplot3d import axes3d               ...
    99+
    2023-01-31
    科学
  • python科学计算学习二:matplo
        博客地址:http://blog.csdn.net/ikerpeng/article/details/20523679     首先补充以下:7种颜色 r g b y m c k (红,绿,蓝,黄,品红,青,黑)     在科研...
    99+
    2023-01-31
    科学 python matplo
  • Python科学计算学习之高级数组(二)
    代码性能和向量化   背景:Python是一种解释型的编程语言,基本的python代码不需要任何中间编译过程来得到机器代码,而是直接执行。而对于C、C++等编译性语言就需要在执行代码前将其编译为机器指令。 但是,解释型代码的速度比编译...
    99+
    2023-01-31
    数组 高级 科学
  • Python科学计算之Pandas详解
    起步 Pandas最初被作为金融数据分析工具而开发出来,因此 pandas 为时间序列分析提供了很好的支持。 Pandas 的名称来自于面板数据(panel data)和python数据分析 (data ...
    99+
    2022-06-04
    详解 科学 Python
  • python科学计算常用的数学科学计算库是什么
    这篇文章给大家分享的是有关python科学计算常用的数学科学计算库是什么的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。python的五大特点是什么python的五大特点:1.简单易学,开发程序时,专注的是解决问题...
    99+
    2023-06-14
  • PHP学习笔记:科学计算与数值模拟
    引言:在当今科技大潮的推动下,科学计算和数值模拟在学术研究和工程实践中扮演着重要的角色。而作为一门功能强大的编程语言,PHP不仅可以用于网站开发和数据处理,也可以用于科学计算和数值模拟。本文将简要介绍PHP的科学计算和数值模拟基础,并提供具...
    99+
    2023-10-21
    PHP 科学计算 数值模拟
  • 【数据科学系统学习】机器学习算法 #
    本篇内容为《机器学习实战》第 6 章 支持向量机部分程序清单。所用代码为 python3。 支持向量机优点:泛化错误率低,计算开销不大,结果易解释。 缺点:对参数调节和核函数的选择敏感,原始分类器不加修改仅适用于处理二分类问题。适用数据...
    99+
    2023-01-31
    算法 机器 科学
  • 学习云计算简单吗?专科生学习云计算就业前景如何?
    很多朋友看到了云计算的热度,心中跃跃欲试,但却又有所顾忌:“云计算工程师入门难吗?”其实,学云计算,不是容易不容易的问题,而是要不要学的问题。事实上,云计算已然渗透到人们生活的方方面面:我们的个人资料被存入了云盘,比如邮件、音乐、照片等,我...
    99+
    2023-06-04
  • 科学计算库Numpy——运算
    np.multiply(array1,array2) 该函数用于数组中对应位置上的数相乘。 一维向量 二维数组 np.dot(array1,array2) 两个数组都是一维向量 数组中对应位置上的数相乘后再求和...
    99+
    2023-01-31
    科学 Numpy
  • Python Tkinter学习之计算器
    初学Python tkinter,利用目前所学编写一个简单的计算器练习一下。预期效果:1.能够实现加减乘除运算,2.只能输入数字3.通过按钮选择进行哪种运算。4.结果框不能修改,智能复制5.按清除按钮能够清除所有内容 from  tkint...
    99+
    2023-01-31
    计算器 Python Tkinter
  • python3学习之时间计算
    import time import datetime y = datetime.datetime.now() s = datetime.datetime.strftime(y,"%Y-%m-%d") st = s + " " + "12...
    99+
    2023-01-31
    时间
  • Python科学计算之NumPy入门教程
    前言 NumPy是Python用于处理大型矩阵的一个速度极快的数学库。它允许你在Python中做向量和矩阵的运算,而且很多底层的函数都是用C写的,你将获得在普通Python中无法达到的运行速度。这是由于矩...
    99+
    2022-06-04
    入门教程 科学 Python
  • 科学计算库Numpy——numpy.nd
    创建ndarray 元素类型 对于ndarray结构来说,里面所有的元素必须是同一类型的,如果不是的话,会自动的向下进行转换。 元素类型所占字节数 数组维数     元素个数 数组的维度 数组中填充固定值 ...
    99+
    2023-01-31
    科学 Numpy numpy
  • 科学计算库Numpy——数值计算
    矩阵 求和 乘积 最大值和最小值 最大值和最小值的位置 平均数 标准差 方差 限制 四舍五入 ...
    99+
    2023-01-31
    数值 科学 Numpy
  • 科学计算库Numpy——概述
    Numpy主要用于数组的各种计算。 导入Numpy import numpy as np 数组类型 Numpy的数组类型为numpy.ndarray。 array=np.array([1,2,3,4,5]) print(type...
    99+
    2023-01-31
    科学 Numpy
  • Python 科学计算和绘图
    转自:http://python.jobbole.com/87471/原文出处: 達聞西   给深度学习入门者的Python快速教程基础篇numpy和Matplotlib篇本篇部分代码的下载地址:https://github.com/fr...
    99+
    2023-01-31
    科学 Python
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作