2020-11-25

一.类的介绍

    对象的结构:

                        id(标识)             type(类型)          value(值)

    介绍:    python是面向对象的编程语言

    特点:复用性高方便后期维护,编写起来有一定难度

类:一个可以创建对象的对象

        python有一些内置的类对象 int()  list()....

        由类可以创建对象实例.例如p1 = Person()  p1:实例对象,Person:类对象

        可以向类对象中定义属性和方法(类似于变量和函数),这个是公共的,由该类创建出来的所有实例化对象都能够访问,就像女娲创造人类(类对象),其中的每一个人(实例对象)都有升高体重(属性),都会说话(方法),

        属性名 = 属性值  

         def  方法名(参数):

                    //这里定义方法中的参数会默认传递一个self参数

                    执行代码

二.self参数

    -->类对象和实例对象都可以创建属性(方法)

        如果这个属性(方法)是所有实例共有的,保存到类对象中,否则保存到实例对象中

   -->方法每次调用时,解析器自动传递一个实参

    如果P1调用,那么第一个参数就是P1对象

    如果P2调用,那么第一个参数就是P2对象"""

class Person:

        name ="小黑"

        def speak(self):

                print("你好,我是%s" %self.name)

# 创建两个人(Person实例)

p1 = Person()

p2 = Person()

p1.name ="小白"

p2.name ="小红"

print(p1.name)    #小白

print(p2.name)    #小黑

print(p1.speak())    #你好,我是小白

print(p2.speak())    #你好,我是小红


self在Python里不是关键字。self代表当前对象的地址。self能避免非限定调用造成的全局变量。

三.特殊方法

class Person():

        def speak(self):

                print("大家好,我是%s"%self.name)

p1 = Person()

p2 = Person()

p1.name ="小红"

p2.name ="小蓝"

p1.speak()        // 大家好,我是小红

p2.speak()        // 大家好,我是小蓝

问题引入:

           有些属性是必须要有但是又各不相同的(不同的人有不同的名字,不同身份证号。。),所以每个人(实例对象),都必须定义这些属性(名字。。。),但是容易出错

解决途径:

             在类中可以定义一些特殊方法(魔法方法)————开头————结尾

            特殊方法可以自己调用(解析器调用)

1.什么时候调用:

-->创建出一个实例对象系统自动调用一次该方法

-->用户可以通过实例对象调用n次

2.有什么用:

class God():

     def __init__(self):

             #print("hello world")

             print(self)

# g1 = God()         # hello world   

# g2 = God()         # hello world

# g3 = God()         # hello world

# g4 = God()         # hello world

由此可见,通过特殊方法,只要创建一个实例对象,那么方法就会被默认调用一次

# <__main__.God object at 0x000001452D44C240>

# <__main__.God object at 0x000001452D44C2B0>

# <__main__.God object at 0x000001452D44C2E8>

# <__main__.God object at 0x000001452D44C320>



class God():

        def __init__(self,name):

                 print("hello world")

                 print(self)

        # 通过self相信创建实例对象初始化属性

        self.name = name     # 等同于g.name = name,g为创建出来的实例对象

        print("你好,我是%s"%self.name)

g1 = God("fire_God")         # 你好,我是fire_God

g2 = God("water_God")         # 你好,我是water_God

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Python语言特性 1 Python的函数参数传递 看两个如下例子,分析运行结果: 代码一: a = 1 def...
    时光清浅03阅读 550评论 0 0
  • Python语言特性 1 Python的函数参数传递 看两个如下例子,分析运行结果: 代码一: a = 1 def...
    伊森H阅读 3,164评论 0 15
  • 目录:https://www.jianshu.com/p/863c446364a8 类的继承 谈类的继承之前我们要...
    久遇_days阅读 597评论 0 3
  • 久违的晴天,家长会。 家长大会开好到教室时,离放学已经没多少时间了。班主任说已经安排了三个家长分享经验。 放学铃声...
    飘雪儿5阅读 7,747评论 16 22
  • 今天感恩节哎,感谢一直在我身边的亲朋好友。感恩相遇!感恩不离不弃。 中午开了第一次的党会,身份的转变要...
    余生动听阅读 10,749评论 0 11

友情链接更多精彩内容