python学习07

 对象和类

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)




猜你喜欢

转载自blog.csdn.net/gy_334/article/details/80277523