最近在上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
2class 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() |