1. 成员
  在类中你能写的所有内容都是类的成员

  

class Person:
def __init__(self, name, gender):
self.name = name # 成员
self.gender = gender # 成员
def run(self): # 成员
print('会跑')

2. 变量
  1. 实例变量: 昨天写的就是实力变量, 由对象去访问的变量.
  2. 类变量. 此时. 这个变量属于类. 但是对象也可以访问.

  

class Person:
contry = '中国'
def __init__(self, name, gender):
self.name = name
self.gender = gender
p = Person('Tom', '男')
p1 = Person("Jerry", '男')
print(p.name)
# p1.contry = '美国'
# print(p1.contry) # 美国
# print(p.contry) # 中国
Person.contry = '大中国'
print(p1.contry) # 大中国
print(p.contry) # 大中国

  

3. 方法
  1. 实例方法: 昨天写的就是实例方法. 使用 对象.方法()
    特点: 在声明的时候. 需要给出self, self必须放在第一个位置
    在调用的时候. 自动的会把对象传递给形参的self

  2. 类方法(@classmethod): 类方法是属于类的.
    特点:在声明的时候需要给出一个能够接受类名的参数, cls , 也必须放在参数的第一个
    在调用的时候. 自动得把xx对象的类传递给cls

class Person:
# 实例方法
def chi(self):
print('人会吃')
@classmethod
def he(cls):
print('人会喝')
# # 用对象访问
# p = Person()
# p.he() # 在调用类方法的时候, 默认的把类名传递给类方法
# print(Person) # 类方法一般用类名去访问
Person.he() # 类方法 #人会喝

  3. 静态方法(@staticmethod): 静态方法也是属于类的. 静态方法就好比. 我们在类中定义了一个函数
    静态方法一般和类方法差不多. 使用类名去访问

class Person:
@staticmethod # 静态方法
def he():
print('人会喝') # # 静态方法可以使用对象访问, 也可以使用类名访问. 推荐使用类名访问
# p = Person()
# p.he() # 人会喝 # 类名访问
Person.he() # 人会喝

4. 属性
  在方法上添加一个@property. 可以把一个方法变成一个属性. 但是这个属性不可以被赋值
  当我们某一个属性必须经过计算才能得到结果的时候.

  

class Person:
def __init__(self, name, gender, birth):
self.name = name
self.gender = gender
self.birth = birth
@property # 把一个方法更改为一个属性,每次拿属性都会执行这个方法,方法返回值是属性
def age(self):
print('我是方法')
return 2018 - self.birth p1 = Person('Jerry', '男', 1994)
print(p1.name) # Jerry
print(p1.age) # 我是方法 24
print(p1.age) # 我是方法 24

5. 私有
  所有以双下划线开头的方法, 变量都是私有内容. 外界无法访问. 除非你主动暴露这些内容

python之成员(面向对象)的更多相关文章

  1. python 高级之面向对象初级

    python 高级之面向对象初级 本节内容 类的创建 类的构造方法 面向对象之封装 面向对象之继承 面向对象之多态 面向对象之成员 property 1.类的创建 面向对象:对函数进行分类和封装,让开 ...

  2. python高级之面向对象高级

    python高级之面向对象高级 本节内容 成员修饰符 特殊成员 类与对象 异常处理 反射/自省 单例模式 1.成员修饰符 python的类中只有私有成员和公有成员两种,不像c++中的类有公有成员(pu ...

  3. 【循序渐进学Python】7.面向对象的核心——类型(上)

    我们知道Python是一门面向对象的脚本语言.从C#的角度来看:首先Python支持多继承.Python 类型成员通常都是public的,并且所有成员函数都是virtual的(可以直接重写). 1. ...

  4. 8.python笔记之面向对象基础

    title: 8.Python笔记之面向对象基础 date: 2016-02-21 15:10:35 tags: Python categories: Python --- 面向对象思维导图 (来自1 ...

  5. 第四篇:python 高级之面向对象初级

    python 高级之面向对象初级   python 高级之面向对象初级 本节内容 类的创建 类的构造方法 面向对象之封装 面向对象之继承 面向对象之多态 面向对象之成员 property 1.类的创建 ...

  6. 第五篇:python高级之面向对象高级

    python高级之面向对象高级   python高级之面向对象高级 本节内容 成员修饰符 特殊成员 类与对象 异常处理 反射/自省 单例模式 1.成员修饰符 python的类中只有私有成员和公有成员两 ...

  7. Python系列之 - 面向对象(1)

    python是一门面向对象的编程语言,python中的一切均是对象. 有对象就提到类,对象和类就像是儿子和老子的关系,是不可分的一对. 什么是类     类就是具有一些共同特性的事物的统称.好比人类, ...

  8. python大法好——面向对象

    python大法好——面向对象 Python从设计之初就已经是一门面向对象的语言,正因为如此,在Python中创建一个类和对象是很容易的.本章节我们将详细介绍Python的面向对象编程. 如果你以前没 ...

  9. python语法学习面向对象之继承

    python语法学习面向对象之继承 转载自:http://www.cnblogs.com/Joans/archive/2012/11/09/2757368.html 只要涉及到面向对象,”类“是必须出 ...

随机推荐

  1. C语言小程序——推箱子(窄字符和宽字符)

    C语言小程序——推箱子(窄字符Version) 推箱子.c #include <stdio.h> #include <conio.h> #include <stdlib. ...

  2. IPv6技术详解:基本概念、应用现状、技术实践(上篇)

    本文来自微信技术架构部的原创技术分享. 1.前言 普及IPV6喊了多少年了,连苹果的APP上架App Store也早已强制IPV6的支持,然并卵,因为历史遗留问题,即使在IPV4地址如果饥荒的情况下, ...

  3. 音视频编解码——YUV视频格式详解

    一.YUV 介绍 YUV是一种颜色编码方方式,通常由彩色摄像机进行取像,然后把取得的彩色图像信号经过分色.分别放大校正后得到RGB,再经过矩阵变换得到亮度信号Y和两个色差信号B-Y(即U).R-Y(即 ...

  4. 《你不知道的javascript》读书笔记1

    概述 放假读完了<你不知道的javascript>上篇,学到了很多东西,记录下来,供以后开发时参考,相信对其他人也有用. js的工作原理 引擎:从头到尾负责整个js的编译和运行.(很大一部 ...

  5. DBUtils的增删改查

    数据准备: CREATE DATABASE mybase; USE mybase; CREATE TABLE users( uid INT PRIMARY KEY AUTO_INCREMENT, us ...

  6. python实现线性排序算法-计数排序

    计数排序假定输入元素的每一个都是介于0到k之间的整数,此处K为某个整数,当k=O(n)时,计数排序的运行时间为O(n) 它的基本思想是:根据每个输入元素x确定小于x的元素个数,根据这个信息把x直接放到 ...

  7. Java 10 实战第 1 篇:局部变量类型推断

    现在 Java 9 被遗弃了直接升级到了 Java 10,之前也发过 Java 10 新特性的文章,现在是开始实战 Java 10 的时候了. 今天要实战的是 Java 10 中最重要的特性:局部变量 ...

  8. Servlet-生命周期简介

    Servlet生命周期可分为5个步骤 加载Servlet.当Tomcat第一次访问Servlet的时候,Tomcat会负责创建Servlet的实例 初始化.当Servlet被实例化后,Tomcat会调 ...

  9. 服务端如何安全获取客户端请求IP地址

    服务端如何获取客户端请求IP地址,网上代码一搜一大把.其中比较常见有x-forwarded-for.client-ip等请求头,及remote_addr参数,那么为什么会存在这么多获取方式,以及到底怎 ...

  10. Java并发编程之synchronized关键字

    整理一下synchronized关键字相关的知识点. 在多线程并发编程中synchronized扮演着相当重要的角色,synchronized关键字是用来控制线程同步的,可以保证在同一个时刻,只有一个 ...