zoukankan      html  css  js  c++  java
  • python定义类的特性,引出面向对象

    面向对象:可以解决更复杂的关系描述,一个对象可以有多个功能

    面向过程:一步一步去走,去实施完成,适合一次性的任务。要是要处理复杂并且可重复利用的,就得用面向对象

    比如,连接数据库,备份数据库,测试数据库如下图:

    面向对象: object oriented programing

    下面举例说明类的特性:举例说明公有属性、私有属性、强制访问、安全访问

    class Role(object):
        def __init__(self,name,role,weapon,life_value=100):
            self.name=name
            self.role=role
            self.weapon=weapon
            self.life_value=life_value
            self.__heart="die"  #私有属性对外部不可见
        def policemen(self):
            print("%s is policemen",self.name)
        def get_heart(self):
            return self.__heart

        def feitoo(self):
            print("%s is feitu",self.role)

        def shoot(self):
            print(self.name," is  shooting",self.__shoot)

        def get_shoot(self):
            print("%s is get_shooted",self.__heart)


    r=Role("xiangxiao","policemen","AK47")
    # r.feitoo()
    # r.get_shoot()
    #print(r.get_heart())
    print(r._Role__heart)

    上面的例子中了解到:

    __init__:表示构造函数

    self.name=name:表示属性,或者成员变量

    self.__heart=”die”:表示私有属性,只允许内部访问

    外部想要直接访问私有属性有2中办法:

    1.直接在内部定义一个函数,来返回私有属性:

     

    2.强制访问

    3.类的公有属性:定义在类里面的属性,如:nationnality

    1.如果想调用一个私有函数的话,就得重新定义一个函数:

    上面就是单独写一个shoot2函数,发现r2调用的新定义的函数,r1还调用的原来的函数

  • 相关阅读:
    linux安装ftp服务器
    批量删除某个用户所有的表
    解决ORA-14450:试图访问已经在使用的事务处理临时表
    jpa 表字段转bean对象
    oracle查询包含某个字段的表
    给所有的表建同义词
    easyui datagrid
    oracle 拼接一张表所有字段
    easyui js基础
    MySQL的Grant命令
  • 原文地址:https://www.cnblogs.com/pythonbz/p/6286800.html
Copyright © 2011-2022 走看看