Day17面向对象-成员

变量
1.成员变量(实例变量)(字段column)
2.类变量(静态变量)直接写在类中的,共享出去的
方法
1.成员(实例)方法,加了self的调用的时候.必须用对象去访问
2.类方法.当方法需要传递类名的时候,需要类方法.规范规则:在上方加@classmethod
3.静态方法,当你的方法不需要传递当前类的对象的时候.语法规则:在上方加@staticmethod
属性
用方法来描述我们的属性信息
注意:
1.@property 改变一个方法成为属性
2.这个方法只能有一个参数
3.必须有返回值

私有
只能在自己的类中访问
__方法
__变量
__类变量

#变量
class Person:
    country="中国"   #类变量.不属于对象.对象可以访问
    def __init__(self,name,num,gender,birthday):
        #成员变量(实例变量)
        self.name=name
        self.num=num
        self.gender=gender
        self.birthday=birthday

#对象来访问(成员方法)   (实例方法)
    def marry(self,duifang):
        print("人会结婚%s" % duifang)

alex=Person("李杰",10086,"男","昨天")
alex.country="澳大利亚"   #这里和变量没有关系,alex单独加了一个属性叫country="澳大利亚
wusir=Person("吴佩琪",10010,"女","今天")

print(alex.country)   #澳大利亚#拿到的是自己
print(wusir.country)  #中国
print(Person.country)  #中国

# 总结:类变量,用类名去操作.

# 方法
class Person:
    def __init__(self):
        pass
    #实例方法需要传递类的对象   self
    def think(self):
        print("人能思考")
    #静态方法不需要传递对象或者类
    @staticmethod#静态方法
    def jisuan(a,b):
        print("我来过这里")
        return a+b

#类方法:第一个参数传递的是类名
    @classmethod
    def clsMethod(cls):
        p=cls()
        print("我是一个类方法",p)
p=Person()
p.think()

Person.think(p)
# 静态方法的调用
# 类名访问
# 静态的内容也用类名访问

# 属性
class Person:
    def __init__(self,name,num,gender,birthday):
        self.name=name
        self.num=num
        self.gender=gender
        self.birthday=birthday
    @property
    def age(self):   #方法只有一个参数,self
        return 10  #必须有返回值
p=Person("alex","10086","不详","1894943")
print(p.age)

# 私有
class Tiger:
    def __init__(self,name,waibiao,qingzheng,qingfu,money,fangchan):
        self.name=name
        self.waibiao=waibiao
        self.qingzheng=qingzheng
        self.__qingfu=qingfu
        self.__money=money
        self.__fangchan=fangchan
    def buy(self):
        print("我有%s" % self.__money)
        self.__sel()
    def __sel(self):
        print("我要卖掉%s" % self.__fangchan)
lh=Tiger("alex","正直","刚正","小潘潘",10000000,5)
lh.buy()

# 成员:
class Person:
    def __init__(self,name,num,gender,birthday):
        self.name=name
        self.num=num
    #对象来访问(成员方法)(实例方法)
    # 成员:在类中定义的变量和方法都被称为成员

转载于:https://www.cnblogs.com/litieshuai/p/9715205.html

day 17 面向对象-成员相关推荐

  1. 17. 面向对象基础

    第三模块 面向对象&网络编程&并发编程 从今天开始,我们将进入系列课程第3个模块的的学习,此模块包含如下三大部分知识: 面向对象,Python中支持两种编程方式来写代码,分别是:函数式 ...

  2. 【C++ 语言】面向对象 ( 成员函数 | 常量函数 | 友元函数 | 友元类 | 单例类 )

    文章目录 成员函数 常量函数 友元函数 new 创建对象 友元类 单例类 成员函数 此处继续上一篇博客继续向后讲解C++面向对象 类成员方法 , 除了定义构造方法与析构方法之外 , 还可以定义普通的成 ...

  3. 7 面向对象(成员变量和局部变量的区别,类作为形式参数的问题,匿名对象,封装,private关键字,this关键字,构造方法,类的初始化过程,static关键字)

    1:成员变量和局部变量的区别(理解) (1)在类中的位置不同 成员变量:类中方法外 局部变量:方法定义中或者方法声明上 (2)在内存中的位置不同 成员变量:在堆中 局部变量:在栈中 (3)生命周期不同 ...

  4. Python学习 :面向对象 -- 成员修饰符

    成员修饰符 两种成员 - 公有成员 - 私有成员, __字段名 - 无法直接访问,只能通过内部方法来间接访问私有成员 简例:公有成员与私有成员  class Info:country = '中国' # ...

  5. [零基础学JAVA]Java SE面向对象部分-17.面向对象高级(05)

    上季内容回顾: 1.对象的多态性  2.抽象类和接口 本季主要知识点: 抽象类和接口的实际应用 1.子类对象可以为父类对象实例化,之后调用的方法都是子类中已经被覆写过的方法.  2.就可以利用此特性, ...

  6. Python面向对象进阶及类成员

    再次了解多继承 先来一段代码 #!/usr/bin/env python # _*_ coding:utf-8 _*_ class A:    def bar(self):        print( ...

  7. Day7 - 面向对象编程进阶及其他相关

    参考文章:http://www.cnblogs.com/alex3714/articles/5213184.html 本节内容: 面向对象高级语法部分 静态方法.类方法.属性方法 类的特殊成员方法 反 ...

  8. 第五十节,面向对象基本介绍

    一,面向对象基础1 c#.Java:只能用面向对象编程 Ruby.python.php:函数编程 + 面向对象 1.面向过程编程2 就是程序最底层的实现过程 2.函数式编程3 就是将最底层的实现过程封 ...

  9. python 面向对象高级应用(三)

    目录: isinstance(obj,cls)和issubclass(sub,super) 反射 __setattr__,__delattr__,__getattr__ 二次加工标准类型(包装) __ ...

最新文章

  1. (原)ubuntu中使用conda安装tensorflow-gpu
  2. Linux下各类TCP网络服务器的实现源代码
  3. golang 写入文件 覆盖旧文件 将旧文件清空
  4. Android之UI控件
  5. 无线研究 破解分享
  6. There is no Action mapped for namespace [/] and action name [LoginAction_home] associ
  7. 爬取B站免费视频--python代码赶快拿
  8. blfs(systemd版本)学习笔记-编译安装openssh软件包
  9. 关于腾讯云服务器不能用公网ip访问的解决方案
  10. 子集数据帧中的丢包因子级别
  11. 【裂缝识别】基于matlab GUI BP神经网络路面裂缝识别系统【含Matlab源码 1063期】
  12. PASCAL VOC2012数据集分析
  13. Cocos Creator 实现大厅+子游戏模式
  14. 学习笔记(二)之字符常量和字符串常量
  15. LimeSDR环境的安装
  16. 用层次分析法解决购买笔记本电脑的问题
  17. 2021年中国天眼对外开放,美媒感叹中国崛起的科技实力
  18. 百练:1042 Gone Fishing
  19. 05无人机动态模型(姿态表示与控制理论)2020-08-15
  20. 我为什么要立刻放弃React而使用Vue?

热门文章

  1. Windows下Apache Tomcat 8安装配置
  2. Nginx 系列:Nginx 实践,location 路径匹配
  3. Apache常见配置及问题
  4. 【PL/SQL】开发程序
  5. Maven Web项目配置Mybatis出现SqlSessionFactory错误的解决方案
  6. 项目出现 The superclass “javax.servlet.http.HttpServlet“ was not found on the Java Build Path 解决方法
  7. 如何在python中识别未知的日期时区时区
  8. Docker如何更改存储库名称或重命名图像?
  9. 你如何在PowerShell中注释掉代码?
  10. c语言中用于程序化结构设计的三种结构是,c语言中用于结构化程序设计的3种基本结构是...