Python中的类,模块,函数
2017-11-30 10:05
169 查看
转载地址 https://www.cnblogs.com/Joans/archive/2012/11/06/2749993.html
一:函数
如果你需要在程序中重用代码,---------定义函数。 def 函数名(参数)://todo
如:
输出:
也可以将函数的参数定义为默认参数,注:默认参数一般放参数的最后,如:
输出:
二:类
类的定义应该是放在面向对象的标题里,但是我们一般函数定义在类里面,从这个范围来说,我在这记录了类。
类和对象是面向对象编程的两个主要方面。类:创建一个新类型,而对象是这个类的实例,类使用class关键字创建。类的域和方法被列在一个缩进块中。
注意:在python语言中,不管什么类型的实例都被看做对象,如整数也被作为对象看待,它属于int类,这和其他语言c++,java把整数纯粹作为类型是不同的。
”域“的概念:
属于一个对象或类的变量被称为域,其实就是类里面定义的变量
[b]域——类的变量和对象的变量[/b]
1:类的变量:由一个类的所有对象(实例)共享使用,只有一个类变量的拷贝,所以当某个对象对类的变量做了改动的时候,这个改动会反映到所有其他的实例上。我理解为:其实它就是一个类的全局变量,类实例化后的对象都可以调用该变量。
[b]2:对象的变量: 由类的每个对象/实例拥有。因此每个对象有自己对这个域的一份拷贝,即它们不是共享的,在同一个类的不同实例中,虽然对象的变量有相同的名称,但是是互不相关的。我理解的是:不同的对象调用该变量,其值改变后互不影响,跟C#的语法一样,我还因为不理解第一点纠结了半天 !
[/b]
属于类级别的变量,在使用它的时候一定要带上类型名字 比如 MyClass.count
属于每个对象级别的变量,在调用的时候一定要带上self表明属于当前对象。self.name
如:
输出:
域(变量)和方法(函数)可以合称为类的属性
类的方法:
类的方法与普通的函数只有一个特别的区别——它们必须有一个额外的第一个参数名称,但是在调用这个方法的时候你不为这个参数赋值,Python会提供这个值。这个特别的变量指对象本身,按照惯例它的名称是
如:
__init__方法:属于python语言的构造函数,一个类只能有一个__init__方法
当对象不再被使用时,
三:模块
模块:如果你想要在其他程序中重用很多函数--------定义模块。其实就是很多的类型,很多的方法集合在一个或多个文件中,通过import ** 载入,类似于c#中的dll
模块基本上就是一个包含了所有你定义的函数和变量的文件。为了在其他程序中重用模块,模块的文件名必须以
注意:每个模块都有自己的名称__name__,__name__作为模块的内置属性,它的作用就是检测.py文件的调用方式,然后根据__name__做出相应的处理。
模块有两种调用方式:1:被import载入调用 2:直接使用
如果模块直接执行,__name__="__main__"; 通常,此语句用于模块测试中使用。
例如:定义一模块名字为MyModule.py
直接运行输出:
通过其他模块调用:
调用模块代码:
间接调用运行输出:
导入部分类,函数及变量,可以使用from...import... 例如 from MyModule import ModuleClass
一:函数
如果你需要在程序中重用代码,---------定义函数。 def 函数名(参数)://todo
如:
输出:
也可以将函数的参数定义为默认参数,注:默认参数一般放参数的最后,如:
输出:
二:类
类的定义应该是放在面向对象的标题里,但是我们一般函数定义在类里面,从这个范围来说,我在这记录了类。
类和对象是面向对象编程的两个主要方面。类:创建一个新类型,而对象是这个类的实例,类使用class关键字创建。类的域和方法被列在一个缩进块中。
注意:在python语言中,不管什么类型的实例都被看做对象,如整数也被作为对象看待,它属于int类,这和其他语言c++,java把整数纯粹作为类型是不同的。
”域“的概念:
属于一个对象或类的变量被称为域,其实就是类里面定义的变量
[b]域——类的变量和对象的变量[/b]
1:类的变量:由一个类的所有对象(实例)共享使用,只有一个类变量的拷贝,所以当某个对象对类的变量做了改动的时候,这个改动会反映到所有其他的实例上。我理解为:其实它就是一个类的全局变量,类实例化后的对象都可以调用该变量。
[b]2:对象的变量: 由类的每个对象/实例拥有。因此每个对象有自己对这个域的一份拷贝,即它们不是共享的,在同一个类的不同实例中,虽然对象的变量有相同的名称,但是是互不相关的。我理解的是:不同的对象调用该变量,其值改变后互不影响,跟C#的语法一样,我还因为不理解第一点纠结了半天 !
[/b]
属于类级别的变量,在使用它的时候一定要带上类型名字 比如 MyClass.count
属于每个对象级别的变量,在调用的时候一定要带上self表明属于当前对象。self.name
如:
输出:
域(变量)和方法(函数)可以合称为类的属性
类的方法:
类的方法与普通的函数只有一个特别的区别——它们必须有一个额外的第一个参数名称,但是在调用这个方法的时候你不为这个参数赋值,Python会提供这个值。这个特别的变量指对象本身,按照惯例它的名称是
self。(类似于c#的this指针)
如:
__init__方法:属于python语言的构造函数,一个类只能有一个__init__方法
__del__方法
:属于python语言的析构函数,它在对象消逝的时候被调用。
当对象不再被使用时,
__del__方法运行,但是很难保证这个方法究竟在 什么时候 运行。如果你想要指明它的运行,你就得使用
del语句
三:模块
模块:如果你想要在其他程序中重用很多函数--------定义模块。其实就是很多的类型,很多的方法集合在一个或多个文件中,通过import ** 载入,类似于c#中的dll
模块基本上就是一个包含了所有你定义的函数和变量的文件。为了在其他程序中重用模块,模块的文件名必须以
.py为扩展名。
注意:每个模块都有自己的名称__name__,__name__作为模块的内置属性,它的作用就是检测.py文件的调用方式,然后根据__name__做出相应的处理。
模块有两种调用方式:1:被import载入调用 2:直接使用
如果模块直接执行,__name__="__main__"; 通常,此语句用于模块测试中使用。
例如:定义一模块名字为MyModule.py
直接运行输出:
通过其他模块调用:
调用模块代码:
间接调用运行输出:
导入部分类,函数及变量,可以使用from...import... 例如 from MyModule import ModuleClass
# coding =utf-8 ## 类的定义 ##-------------------------------------------------- class Employee: empCount = 0 ## 构造函数,函数名必须用: __init__ def __init__(self, name, salary): self.name = name self.salary = salary Employee.empCount += 1 ## 以下是类的普通成员函数 def displayCount(self): print "Total Employee %d" % Employee.empCount def displayEmployee(self): self.displayCount() print "Name : ", self.name, ", Salary: ", self.salary ## 注:直接定义在类体内的数据成员是类的静态数据成员,为所有对象共有 ## 定义在成员函数内的数据成员是各个对象独有的数据成员 ## 每个成员函数都必须带self参数,函数被调用时不需要给这个参数赋值 ## 成员函数之间调用时需要带 self前缀,如 line 17 ##-------------------定义结束------------------------------- "创建 Employee 类的第一个对象" emp1 = Employee("Zara", 2000) "创建 Employee 类的第二个对象" emp2 = Employee("Manni", 5000) emp1.displayEmployee() emp2.displayEmployee() emp1.age = 7 # 添加一个 'age' 属性 emp1.age = 8 # 修改 'age' 属性del emp1.age # 删除 'age' 属性 print getattr(emp1, 'age') # 返回 'age' 属性的值 delattr(emp1, 'age') # 删除属性 'age' print hasattr(emp1, 'age') # 如果存在 'age' 属性返回 True。 setattr(emp1, 'age', 8) # 添加属性 'age' 值为 8 print hasattr(emp1, 'age')
相关文章推荐
- python的random模块函数分析(一)
- python re 模块 findall 函数用法简述
- python 函数、模块、包及import导入方法
- python os模块进程函数
- python中不同模块(函数、类、变量)的调用
- Python+Django+SAE系列教程2-----Python种的函数、模块和数据结构
- python 查找模块里的所有函数
- Python模块函数:os.listdir 打印Win7目录中的文件-中文乱码问题
- 【python】os和os.path模块及其常用函数方法
- Python 3.X 调用多线程C模块,并在C模块中回调python函数的示例
- Python常用的模块和函数
- python urllib模块里面一些函数
- Python 引用多个模块,调用模块中的函数时...要注意的地方
- Python Re模块 常用函数
- Python 第三篇(上):python文件基础操作、json模块、lambda、map、filter、reduce和函数位置参数
- Python turtle 模块函数笔记
- Python基础教程(七):函数、模块
- Python-----PIL Image模块 show函数不能正常显示图片
- 【Python】控制流语句、函数、模块、数据结构