最近三天由于回老家上年坟,基本没有学什么,只有抽空看了一些关于类的知识。
对于类我一直是比较苦手的,在学c++时,我就不怎么熟练,好在后面补习了一下,最后还是应付了课设。到了python,类的构造基本不变,但是self的存在让我摸了一头雾水,于是我又看了看python的类。
python:类基础_不怕猫的耗子A-CSDN博客_python类
类,实例与实例化
>>> class Student():
i = 1
def __init__(self,name):
self.name = name
一般的示例大都如上,其中i相当于所有该类的实例的出生便有的统一标签。例如:
>>> a = Student()
>>> b = Student()
>>> id(a.i)
2012055759152
>>> id(b.i)
2012055759152
其中a和b就是Student的两个实例,a = Student()这一过程称为实例化,i为它们俩的一个共有标签,虽然一开始是一样的,但是后期可以改变。
>>> a.i = 2
>>> id(a.i)
2012055759184
>>> print(a.i,b.i)
2 1
self
self是python类的方法定义中的第一个变量,也就是说它可以不是self,是a或b都可以,用self是大家约定俗成的习惯。self代表实例本身,但不需要输入,比如:
>>> class Student():
i = 1
def __init__(self,name):
self.name = name
def age(self,age):
print("姓名:%s,年龄:%s" % (self.name,age))
>>> a = Student("A")
>>> a.age(10)
姓名:A,年龄:10
在实例化时__init__方法自动调用,a = Student("A")相当于直接执行self.name = name,self代表当前实例,也就相当于a.name = name。其他方法下同样。
函数内定义函数
之前看到的忘记记下来,在这里补充。
python函数内可以定义函数,目的时在函数内调用其他函数的变量。
>>> def p1():
a = 1
print(a)
def p2():
a = 10
print(a)
def p3():
a = 100
print(a)
p3()
p2()
>>> p1()
1
10
100