类的定义

xiaoxiao2021-02-28  22

#coding:utf-8 class People(object): # __init__()这个初始化函数,会在对象被创建时自动执行函数的调用,不需要手动调用 __init__()函数。 # __init__()函数在类型不是必须要定义的,当需要声明属性时,必须通过__init__() 函数声明。 def __init__(self, name, age, height, weight): # self.name/self.age/self.weight/self.height: 属性 self.name = name self.age = age self.height = height self.weight = weight print '---------------------------' # 类中定义的函数,第一个参数必须是固定的self。self的值由解释器自动传值。self后 面定义我们需要的参数。 def get_all_info(self): # 因为函数内部可能会使用到一些属性。 print self.name,self.age,self.height,self.weight def show(self): print self.name,self.age,self.height,self.weight # 当创建对象p1时,会自动执行对象的初始化函数__init__(),并给初始化函数传递参数,传 参数时注意: # 参数中包含一个隐含的实参,会赋值给__init__()函数中的self形参。 p1 = People('张三', 30, 170, 80) # 属性:用于保存一个对象的数据。 # 函数:用于操作一个对象的数据。 p2 = People('李四', 23, 180, 60) # 面向对象编程:不管是操作类中属性也好,还是操作类中的函数,都必须通过对象完成调用。 # 语法要求:对象名.属性名或者对象名.函数名() print p2.name p2.get_all_info() print p1.name # 关于对象的创建过程: # 每次通过People()类创建对象时,Python的解释器都会给该对象分配一个单独的内存空间, 将People类中定义的属性复制一份存放到对象的内存中用于保存。同时,内存具有唯一性的特点, 所以每一个对象的内存地址都是唯一的,不允许重复。 # 虽然所有People类的对象,都有name/age/weight/height属性,但是每一个对象的属性名 都是在各自的内存中的,而不是共用的同一个属性名。 # 面向对象编程同时也支持给对象动态添加属性的操作。 class Student(object): pass # 先创建对象 s1 = Student() print s1 s2 = Student() print type(s2) # 对象名.属性名: 如果在=号的左侧,是在给属性赋值,如果在=号的右侧,是在获取属性的值。 s1.name = '张三' s1.age = 20 res = s1.name res1 = s1.age print res,res1 print s2.name
转载请注明原文地址: https://www.6miu.com/read-2800096.html

最新回复(0)