对象和类
python中一切皆为对象,所谓对象:我自己就是一个对象,我玩的电脑就是对象,坐着的椅子就是对象,家里养的小狗也是一个对象。。。。。。
我们通过描述属性(特征)和行为来描述一个对象的。比如家里的小狗,它的颜色,大小,年龄,体重等是它的属性或特征。它会汪汪叫,会摇尾巴等是它的行为。
我们在描述一个真实对象(物体)时包括两个方面:
它可以做什么(行为)
它是什么样的(属性或特征)。
在python中,一个对象的特征也称为属性(attribute)。它所具有的行为也称为方法(method)
结论:对象=属性(特征)+方法(行为)
类:在python中,把具有相同属性和方法的对象归为一个类(class)
比如人类,动物,植物等等,这些都是类的概念。
类是对象的模板或蓝图,类是对象的抽象化,对象是类的实例化。类不代表具体的事物,而对象表示具体的事物。
class people: #people是类名 #方法 def speak(self): #self相当于this指针 print('hello!') a=people() #创建a实例(对象) a.speak() #引用speak方法 #得到:'hello!' a.age=22 #添加age属性 a.height=180 #添加height属性 a.age a.height #得到22 180
初始化对象
创建类时,可以定义一个特定的方法,名为__init__(),只要创建这个类的一个实例就会运行这个方法。可以向__init__()方法传递参数,这样创建对象时就可以把属性设置为你希望的值。__init__()这个方法会在创建对象时完成初始化
class people: def __init__(self,name,age,sex): self.Name=name self.Age=age self.Sex=sex def speak(self): print('my name'+self.Name) #实例化这个对象 zhangsan=people('张三',24,'男') print(zhangsan.Age) print(zhangsan.Name) print(zhangsan.Sex) #得到:24 '张三' '男' ''' 如果直接print(zhangsan)会得到 <__main__.people object at 0x02351290> 要让print能打印出来,就得使用__str__方法 __str__()这个方法告诉python在打印(print)一个对象时,具体显示什么内容 使用方法如下 ''' class people: def __init__(self,name,age,sex): self.Name=name self.Age=age self.Sex=sex def speak(self): print('my name'+self.Name) def __str__(self): msg=('my name is: ' +self.Name+ ","+ "my age is: " + self.Age +','+ "my sex is:" +self.Sex) return msg zhangsan=prople('张三','22','男') print(zhangsna) #得到:my name is: shanghai,my age is: 23,my sex is:man #此处22是年龄,但被转成了字符串,因为self.Age定义的是字符串 如果不将23转义,则会报错,如果希望在程序中事先转义,需使用str(self.Age)