初识面向对象:类

定义一个类:

class 类名(大写开头):
    属性 = ‘a’

类名.属性
类名的作用:操作属性、查看属性

例:

class Tst:
    nationality = '中国' #静态属性,不能在类外边修改
    def __init__(self,name,age,sex):
        self.name = name
        self.age = age
        self.sex = sex
        print(id(self))#self与t1的内存地址一样

    def way(self):#方法,一般情况下必须传self参数,且必须写在第一个;后面还可以传其他参数,是自由的
        pass

t1 = Tst('aike','25','')                   #所以t1接收的是self的内存地址
print(Tst.nationality)                          #查看静态属性
print(Tst.__dict__['nationality'])              #同样可以使用双下dict方法查看静态属性值
# Tst.__dict__['nationality'] = '美国'            #报错,所以静态属性不能修改
print(t1)                                       #返回的是一个内存地址,与self一样
print(id(t1))                                   #self与t1的内存地址一样
print(t1.name)                                  #查看属性值
print(t1.__dict__)                              #通过双下dict方法能够查到里面的数据,内存地址与一致,所以数据也是一致
print(t1.__dict__['name'])                      #同样可以使用双下dict方法查看属性值
t1.__dict__['name'] = '艾克'                      #使用双下dict方法可以修改属性值
print(t1.__dict__['name'])

t1.way()                                        #可以用对象直接调用方法,等同于Tst.way(t1),如果方法不止接收一个参数,在括号内部依次传入即可
过程:
类名() 首先 会创造出一个对象,创建了一个self变量
调用init方法,类名括号里的参数会被这里接收
执行init方法
返回self
对象能做的事:
查看属性
调用方法
__dict__ 对于对象的增删改查操作都可以通过字典的语法进行
类名能做的事:
实例化
调用方法 : 只不过要自己传递self参数
调用类中的属性,也就是调用静态属性
__dict__ 对于类中的名字只能看 不能操作

总结: 

  1、实例化的过程就是类——>对象的过程,创建的对象就是一个实例化的东西

  2、self在实例化时自动将对象/实例本身传给__init__的第一个参数,你也可以给他起个别的名字,但是正常人都不会这么做。

  3、对象通过双下dict方法能够查到这个对象的数据,内存地址与self一致,所以数据也是一致

  4、静态属性可以在类的外面通过双下dict方法查看,但不能修改

  5、对象调用方法的方式与平时不一样

猜你喜欢

转载自www.cnblogs.com/aizhinong/p/11440267.html