ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

Knight_day15

2022-02-19 17:04:11  阅读:159  来源: 互联网

标签:__ Person 对象 Knight self day15 类中 属性


【函数汇总、面向对象初识、类名的使用、对象的使用、类名称空间,对象名称空间】

  • 函数汇总

    https://www.processon.com/view/link/62109b5be401fd587b38e325

  • 面向对象初识

    class A:

      name = 'alex' #静态属性

      def fun(self): #方法

        pass

      def __init__(slef): #特殊方法

        pass

    特点:

      1.函数封装一个功能,面向对象封装多个相关功能

      2.抽象,是一种思想,要站在上帝视角理解。共同点:共同属性。不同点:实例化对象。

      3.程序可扩展,对象都是一个个独立的。耦合性,差异性。

    类,对象:

      类:具有相同属性或功能的一类事物。

      对象:对象是类的具体体现。

  • 类名的使用

    一个框架,一个模型

    class Person:

      #属性是一些名词

      animal = '高级动物'

      walk_way = '直立行走'

      language = '语言'

      #方法是一些动词

      def eat(self):

        print('该吃吃该喝喝')

      def work(self):

        print('人类都需要工作')

    类名:

      1.查看类中所有属性和方法 __dict__

        Person.__dict__

        Person.__dict['animal'] #单独可以查,不能增删改

        一般用到__dict__就是查看类中所有属性及方法,不进行其他操作

      2.操作类中某个,某些属性,用万能的点

        Person.animal 查

        Person.name = 'alex' 增

        Person.animal = ‘低级动物’

        del Person.walk_way 删

      3.操作方法(一般不通过类名操作,而是通过对象操作)

        Person.__dict__['work'](由于self,此处需随便传个参数) #不建议

        Person.work(666)

    类名()和__init__:

      类里一般必有__init__(self): #特殊方法,给对象封装属性

      obj = 类名() #这个过程是一个实例化过程,会实例化一个对象(在内存里实例化一个对象空间)

      实例化过程在内存中分三个阶段:

        1.在内存中开辟一个对象空间

        2.自动执行类中__init__方法,并且将对象空间(地址)自动传给self参数,其他参数手动传入

 

 

         3.执行__init__方法,给对象空间封装相应的属性。

  • 对象的使用

    对象操作对象空间

      对象查看对象空间的所有属性

        obj.__dict__

      对象操作对象空间的某个属性(增删改查),用万能的点

        obj.sex = '男' #增

    对象操作类空间的属性

      只能查,不能改(其实是在对象空间内增)

    对象操作类空间的方法

      只要类中方法第一个参数是self(粉色),都会自动把对象(地址)传进去(99%)

      obj.eat()

  • 类名称空间,对象名称空间

    公共模板,公共框架

    class GmaeRole:

      实例化游戏人物

    1.对象为什么能调用类中属性和方法且只能调用,不能改变?

 

 

       obj.属性名:先从自己空间去找,没有此属性再通过类对象指针从类去找,类中找不到,会从父类去找。

      obj.类中属性/方法 = ... 此操作实际是给对象增加一个属性,且再次obj.该类中属性/方法 时,得到的是对象中的值。

      对象只能查看类中属性,不能增删改

    2.类能不能调用对象的属性?

      不能

    3.对象与对象之间可不可以相互调用?

      同一个类实例化的对象之间不能互相访问

      不同类实例化的对象之间可能互相访问

    给对象封装属性:

      __init__

      任意位置:对象.新属性 = 值

           在类中单独一个封装该属性的函数(使用self.新属性)

标签:__,Person,对象,Knight,self,day15,类中,属性
来源: https://www.cnblogs.com/hlzzhq/p/15913023.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有