初识Python类

时间:2021-04-19 19:48:00

吐槽:学习面向对象就像你追一个女神一样,刚刚有点感觉了,过几天又陷入绝望的感觉,很蛋疼。

类的语法

class Person(object):
print("learning class")
test = Person()
#test就是类Person的实例化对象
#实例化,就是以Person类为模板,在内存里开辟一块空间,存上

然后想加点东西,是谁在学习类。

class Person(object):
def __init__(self,name):
self.name = name
def learng(self):
print(self.name,"is learning class")
test = Person("Jhon")
test.learng() #类实例化后就可以调用类中的方法了
#test就是类Person的实例化对象
#实例化,就是以Person类为模板,在内存里开辟一块空间,存上数据,赋值成一个变量名

为什么会有__init__?为什么有self? what happend?看下面代码

class Person(object):
def __init__(self,name):
self.name = name
def learng(self):
print(self.name,"is learning class")
print(Person)
# test = Person("Jhon")
# test.learng() #类实例化后就可以调用类中的方法了
#test就是类Person的实例化对象
#实例化,就是以Person类为模板,在内存里开辟一块空间,存上数据,赋值成一个变量名

打印结果如下:

<class '__main__.Person'>

这说明即使类不实例化,这个Person类本身也是已经存在内存里的。如果实例化了?会有什么反应了?

初识Python类

根据图我们得知,其实self就是实例本身!实例化python会自动把这个实例本身通过self参数传进去。

趁热打铁,接下来分解一下下面代码分别是什么意思

class Role(object): #定义一个类, class是定义类的语法,Role是类名,(object)是新式类的写法,必须这样写,以后再讲为什么
def __init__(self,name,role,weapon,life_value=100,money=15000): #初始化函数,在生成一个角色时要初始化的一些属性就填写在这里
self.name = name #__init__中的第一个参数self,和这里的self都 是什么意思? 看下面解释
self.role = role
self.weapon = weapon
self.life_value = life_value
self.money = money

  上面的这个__init__()叫做初始化方法(或构造方法),在类被调用时,这个方法会自动执行,进行一些初始化的动作,所以我们这里写的__init__(self,name,role,weapon,life_value=100,money=15000)就是要在创建一个角色时给它设置这些属性,那第一个self是干毛用的呢?

初始化一个角色,就需要调用类一次:

r1 = Role('Alex','police','AK47’) #生成一个角色 , 会自动把参数传给Role下面的__init__(...)方法
r2 = Role('Jack','terrorist','B22’) #生成一个角色

未完待续。。。。