@w460461339
2016-10-15T20:36:57.000000Z
字数 1941
阅读 1139
Python
最简单的模块:
#这个文件名为:fibo.pydef count(var1)return var1+1;
在另一个文件中使用这个方法
#这个文件名为:use.py#像java中一样进行导入import fibo#如何在这个文件里调用另一个文件中的方法var2=fibo.count(2)print(var2)
另外python也有包的概念,这里不多说。
输出格式美化
Python两种输出值的方式: 表达式语句和 print() 函数。
第三种方式是使用文件对象的 write() 方法,标准输出文件可以用 sys.stdout 引用。
如果你希望输出的形式更加多样,可以使用 str.format() 函数来格式化输出值。
如果你希望将输出的值转成字符串,可以使用 repr() 或 str() 函数来实现。
str(): 函数返回一个用户易读的表达形式。
repr(): 产生一个解释器易读的表达形式。
其他不多说,太细节。
这个是文件操作,这里暂时不说。
嘛,这个也暂时不说吧。
1、基本格式
class ClassName:
<statement1>
...
<statementn>
2、貌似不能定义未经赋值的成员变量(即,要定义成员变量就必须先初始化)
3、成员方法中,其第一个参数必须名为self
4、这个self相当于java中的this
成员变量有这么几种创建方法:
1、在类内,成员方法前进行声明;在声明时需要给成员变量进行初始化,不然声明出错
class myClass:a=''#在声明时未给b赋值,此声明报错bdef fun1(self):......
2、在类内,成员方法内,利用self创建成员变量并赋值;记住,self类似于this的作用。
class myClass:def __init__(self):self.a=''self.b=[].....
这里不像java里面那么麻烦,只有两种方案:
基本属性:外部可以访问
私有属性:外部不可以访问,只可以在类内部访问
基本属性的定义之前已经介绍过了,这里介绍怎么定义私有属性。
class myClass:#前面加双下划线就是私有属性__privateA=''def __init__(self,num1):self.a=num1#利用self也可以构建私有属性self.__b=3
成员方法有两种类型:
基本成员方法
私有成员方法
但无论哪种类型,第一个参数都必须是self
创建基本成员方法
class myClass:def sum(self,num1,num2):return num1+num2
创建私有成员方法
class myClass:def __mulity(self,num1,num2):return num1*num2
类是可以继承的,派生类中可以对基类的方法进行重写覆盖。
覆盖表示,除了名字一样以外,参数列表和函数体都可以不同。
#基类class myClass:def speak(self):return 'hello'del sit(self)return 'distance'#派生类class myFirstClass(myClass):#覆盖基类中同名函数;参数列表一致,函数体不同def speak(self):return 'hello python'#覆盖基类中同名函数;参数列表不一致,函数体不同def sit(self,num1):return 'distance'+str(num1)
测试了一下,感觉下面这些方法是这样的:
1、这些方法不提供原始的定义,需要自己去覆盖它
2、这些方法被覆盖后,虽然他们前面有双下滑线,但他们不是私有方法
3、在外部可以方便的调用他们
4、它们即代表一种运算方法:
比如,__add__定义了对象a + 对象b 具体是怎么操作
__pow__定义了对象a的对象b次方具体是怎么操作等等
__init__ : 构造函数,在生成对象时调用
__del__ : 析构函数,释放对象时使用
__repr__ : 打印,转换
__setitem__ : 按照索引赋值
__getitem__: 按照索引获取值
__len__: 获得长度
__cmp__: 比较运算
__call__: 函数调用
__add__: 加运算
__sub__: 减运算
__mul__: 乘运算
__div__: 除运算
__mod__: 求余运算
__pow__: 称方
python支持单继承与多继承;
同样的,继承只继承基本的成员变量与成员方法,对于私有的成员变量和成员方法,不进行继承。
多继承时,如果多个基类中有方法名相同,默认使用最左边的基类中的方法。