[关闭]
@w460461339 2016-10-16T04:36:57.000000Z 字数 1941 阅读 888

Python Day4

Python


1、模块

最简单的模块:

  1. #这个文件名为:fibo.py
  2. def count(var1)
  3. return var1+1;

在另一个文件中使用这个方法

  1. #这个文件名为:use.py
  2. #像java中一样进行导入
  3. import fibo
  4. #如何在这个文件里调用另一个文件中的方法
  5. var2=fibo.count(2)
  6. print(var2)

另外python也有包的概念,这里不多说。

2、输入输出

输出格式美化
Python两种输出值的方式: 表达式语句和 print() 函数。
第三种方式是使用文件对象的 write() 方法,标准输出文件可以用 sys.stdout 引用。
如果你希望输出的形式更加多样,可以使用 str.format() 函数来格式化输出值。
如果你希望将输出的值转成字符串,可以使用 repr() 或 str() 函数来实现。

str(): 函数返回一个用户易读的表达形式。
repr(): 产生一个解释器易读的表达形式。

其他不多说,太细节。

3、File,OS,输入和输出

这个是文件操作,这里暂时不说。

4、错误和异常

嘛,这个也暂时不说吧。

5、面向对象

1、基本格式
  class ClassName:
    <statement1>
    ...
    <statementn>
2、貌似不能定义未经赋值的成员变量(即,要定义成员变量就必须先初始化)
3、成员方法中,其第一个参数必须名为self
4、这个self相当于java中的this
5.1 成员变量
5.1.2 创建

成员变量有这么几种创建方法:

1、在类内,成员方法前进行声明;在声明时需要给成员变量进行初始化,不然声明出错

  1. class myClass:
  2. a=''
  3. #在声明时未给b赋值,此声明报错
  4. b
  5. def fun1(self):
  6. ...
  7. ...

2、在类内,成员方法内,利用self创建成员变量并赋值;记住,self类似于this的作用。

  1. class myClass:
  2. def __init__(self):
  3. self.a=''
  4. self.b=[]
  5. .....
5.1.2成员变量作用域

这里不像java里面那么麻烦,只有两种方案:

基本属性:外部可以访问
私有属性:外部不可以访问,只可以在类内部访问

基本属性的定义之前已经介绍过了,这里介绍怎么定义私有属性。

  1. class myClass:
  2. #前面加双下划线就是私有属性
  3. __privateA=''
  4. def __init__(self,num1):
  5. self.a=num1
  6. #利用self也可以构建私有属性
  7. self.__b=3
5.2 成员方法
5.2.1 类型

成员方法有两种类型:

基本成员方法
私有成员方法

但无论哪种类型,第一个参数都必须是self

创建基本成员方法

  1. class myClass:
  2. def sum(self,num1,num2):
  3. return num1+num2

创建私有成员方法

  1. class myClass:
  2. def __mulity(self,num1,num2):
  3. return num1*num2
5.2.2 覆盖

类是可以继承的,派生类中可以对基类的方法进行重写覆盖。

覆盖表示,除了名字一样以外,参数列表和函数体都可以不同。

  1. #基类
  2. class myClass:
  3. def speak(self):
  4. return 'hello'
  5. del sit(self)
  6. return 'distance'
  7. #派生类
  8. class myFirstClass(myClass):
  9. #覆盖基类中同名函数;参数列表一致,函数体不同
  10. def speak(self):
  11. return 'hello python'
  12. #覆盖基类中同名函数;参数列表不一致,函数体不同
  13. def sit(self,num1):
  14. return 'distance'+str(num1)
5.2.3 类自带的方法

测试了一下,感觉下面这些方法是这样的:

1、这些方法不提供原始的定义,需要自己去覆盖它
2、这些方法被覆盖后,虽然他们前面有双下滑线,但他们不是私有方法
3、在外部可以方便的调用他们
4、它们即代表一种运算方法:
    比如,__add__定义了对象a + 对象b 具体是怎么操作
          __pow__定义了对象a的对象b次方具体是怎么操作等等

__init__ : 构造函数,在生成对象时调用
__del__ : 析构函数,释放对象时使用
__repr__ : 打印,转换
__setitem__ : 按照索引赋值
__getitem__: 按照索引获取值
__len__: 获得长度
__cmp__: 比较运算
__call__: 函数调用
__add__: 加运算
__sub__: 减运算
__mul__: 乘运算
__div__: 除运算
__mod__: 求余运算
__pow__: 称方
5.2.4 继承

python支持单继承与多继承;

同样的,继承只继承基本的成员变量与成员方法,对于私有的成员变量和成员方法,不进行继承。

多继承时,如果多个基类中有方法名相同,默认使用最左边的基类中的方法

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注