最近在上Python实训课,就随堂学习学习一下基本的Python语法,发现这个语言确实挺方便的,不是一个复杂的语言,甚至还可以很方便得写类和继承类。然后老师也讲了一些知识,整理了一下
Python的class
| 1 | class Person: | 
- class的定义如代码所示。
- 非双下划线开头的变量/函数名相当于 - public的成员变量/函数,而用- __作变量名/函数名开头的会被视为私有- private成员变量/函数,示例代码中- name就是- public类型,而- __odername是private类型。
- self参数相当于- Java中的- this,要使用本身类中的变量不像- C语言在成员函数中直接写就行了,要用- self.xxxxx来调用。
- __init__函数和- __del__私有成员函数可以看作- C++的构造和析构函数,在实例创建和消亡时会自动调用。
- 类的继承用括号实现,比如让 - class B继承- class A,那么就可以这么写:- 1 
 2- class B(A): 
 ......- 然后在 - B中写同名函数会覆盖- A中的同名函数
遇到的一点问题
Python中创建$n*m$的二维数组,一开始我想当然地去用一维的长度为$m$的list扔$n$次到另一个$list$中,这样似乎没有什么问题,实际上想去修改某一个位置的值的时候会发现这一列全被修改了。去百度了一下发现其中涉及到一些引用的东西,这里就不细讲了,说下正确的做法之一:
| 1 | arr = [[0 for i in range(m)] for i in range(n)] | 
这样就创建好了一个$n*m$的二维数组$arr[n][m]$了。
然后做题的时候读取一行的数据,可以把一行用read = input().split()(默认作为字符串str类型)读取进来并用split()(默认空格为分隔符)分割完毕,然后用下标访问读取的第$i$个元素,比如输入形式是数字 字符串 数字,那就可以这样:
| 1 | read = input().split() |