zoukankan      html  css  js  c++  java
  • python初始面向对象

     
    1.类的定义
        定义是通过class关键字加大写字母开头的类名
    class Person(object):
            pass
        class 后面接类名,即Person 类名通常开头大写首字母的单词
        接着(object),表示该类是从哪个类继承下来的,如果没有合适的
        继承类,就使用默认object类,这个是所有类最终都会继承的类
    
        定义好Peraon类,就可以根据Person类创建出Person的实例化对象
        创建实力例就是通过类名+()实现的
    p = Person()   #创建实例空间
    print(p)     #<__main__.Person object at 0x0000000002721748>
    print(Person)   #  <class '__main__.Person'>
    可以看到p指向是一个Person实例空间,Person指向是一个本类
    可以自由的给实例变量捆绑属性
    p.name = "alex"
    print(p.name)     #  alex



    面向对象:
       1类,具有相同属性和技能的一类事物   class Person:
       2.对象,具体的类的表现,具体的实例    p = Person("alex",18)  具体的实例化空间
    class Person:
        类体分两部分:  变量部分
                      方法(函数)类体部分
    
    class Person:
        mind = "有思想的"   #  变量部分,静态变量,静态字段
    
        def __init__(self):  # 构造方法
    
        def func(self):     #方法(函数)部分,动态变量
            print(333)
    类名的角度:
    
    
    

      

    # 由于可以起到模板的作用,因此,可以在创建实例的时候,把一些我们认为
    # # 必须绑定的属性强制性的填写进去,通过定义一个特殊的__init__方法
    # # 在创建实例的时候,把 name , age ,sex  等属性捆绑上去.
    # #
    # class Person:
    #     money = "货币"
    #     def __init__(self,name,age,sex):
    #         self.name = name
    #         self.age = age
    #         self.sex = sex
    #     #注:__init__是双下划线
    # 
    #     #注意:
    #         #  __init__方法第一个参数永远是self,表示创建的实例本身,
    #         # 因此在__init__方法内部,就可以把各种属性绑定到self
    #         # 因此self就是指向创建的实例本身
    #         # 有了__init__方法,在创建实例的时候,就不能传入空的参数了
    #         # 必须传入与__init__方法匹配的参数,但self需要要传,python
    #         # 解释器会自己把实例变量传进去
    # # 静态操作:
    # print(Person.money)   #  货币  查询
    # Person.moind = "有思想的"
    # # print(Person.__dict__)      #  增加   'moind': '有思想的'}
    # del Person.money   #
    # print(Person.__dict__)
    # 
    # # p = Person("alex",80,"男")
    # # print(p.age)   # 80
    # # print(p.__dict__)     #  {'name': 'alex', 'age': 80, 'sex': '男'}    对象操作类中的静态变量 : 只能查
    # # print(p.name)   #  80  查
    # 
    # # print(Person.__dict__)      #查询类中所有的内容
    # 
    # # 和普通方法相比,在类中定义的函数只有一点不同,就是第一个参数
    # # 永远都是self,并且调用时,不用传递参数.除此之外,类的方法与普通方法
    # # 没有什么区别
    # 
    # # 总结:
    # #     1.__dict__:可以查询类和对象中的类容,并且以字典形式返回
    # #     2.类名+()---实例化一个对象
    # #     3.实例化对象之后会自动执行__init__方法,并且将对象传给self参数
    # #     4.给对象封装相应的属性
    # #
    # # 2.数据封装
    # #     面向对象编程的一个重要特点就是数据封装
    # #     在Person类中,每个实例都拥有各自的 name,age,sex数据
    # #     Person实例化本身就拥有这些数据,要访问这些数据,就没有
    # #     必要从外面的函数去访问,可以直接在Person类的内部定义访问数据的
    # #     函数,这样就把"数据"封装起来了.这些封装数据的函数时和Person
    # #     类本身关联起来,我们称为类的方法.
    # # class Person:
    # #     def __init__(self,name,age,sex):
    # #         self.name = name
    # #         self.age = age
    # #         self.sex = sex
    # #     def func(self):    #
    # #         print("%s,%s,%s" %(self.name,self.age,self.sex))
    # #
    # # p = Person("alex",10,"男")
    # # p.func()      # alex,10,男
    # # 这样一来,我们从外部看Person类,就只需要知道,创建实例需要给出 name,age,sex
    # # 如何打印,都是在Person类的内部定义的,这些数据和逻辑被"封装"起来了,调用
    # # 很容易,但却不知道内部实现细节.封装的另外一个好处就是可以给Person类增加形容方法
    # #
    # # 总结:
    # #     1.类创建的是实例的模板,而实例则是一个具体的对象,各个实例拥有的数据都是
    # #     相互独立的,互不影响>
    # #     2.方法就是与实例绑定的函数,和普通函数不同,方法可以直接返回实例的数据
    # #     3.python允许实例变量绑定任何数据,也就是说,对于两个实例变量,虽然它们
    # #     都是同一类的不同


  • 相关阅读:
    Windows搭建SkyWalking8.3环境进行JAVA应用性能监控及入门示例(使用Mysql持久化)
    使用JMeter进行压力测试
    IDEA2020.1使用LeetCode插件运行并调试本地样例
    centos7使用Minikube“快速搭建“出Kubernetes本地实验环境(踩坑集锦及解决方案)
    事务的隔离级别与所带来的问题
    深入理解HashMap第一篇
    LoadRunner 与浏览器兼容性
    互联网产品接入支付功能如何测试?
    基于AMF协议的Flex应用程序的性能测试
    centos+mono+nginx+jexus 搭建linux下c#运行环境测试
  • 原文地址:https://www.cnblogs.com/caodneg7/p/9388823.html
Copyright © 2011-2022 走看看