python之成员(面向对象)
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之成员(面向对象)的更多相关文章
- python 高级之面向对象初级
python 高级之面向对象初级 本节内容 类的创建 类的构造方法 面向对象之封装 面向对象之继承 面向对象之多态 面向对象之成员 property 1.类的创建 面向对象:对函数进行分类和封装,让开 ...
- python高级之面向对象高级
python高级之面向对象高级 本节内容 成员修饰符 特殊成员 类与对象 异常处理 反射/自省 单例模式 1.成员修饰符 python的类中只有私有成员和公有成员两种,不像c++中的类有公有成员(pu ...
- 【循序渐进学Python】7.面向对象的核心——类型(上)
我们知道Python是一门面向对象的脚本语言.从C#的角度来看:首先Python支持多继承.Python 类型成员通常都是public的,并且所有成员函数都是virtual的(可以直接重写). 1. ...
- 8.python笔记之面向对象基础
title: 8.Python笔记之面向对象基础 date: 2016-02-21 15:10:35 tags: Python categories: Python --- 面向对象思维导图 (来自1 ...
- 第四篇:python 高级之面向对象初级
python 高级之面向对象初级 python 高级之面向对象初级 本节内容 类的创建 类的构造方法 面向对象之封装 面向对象之继承 面向对象之多态 面向对象之成员 property 1.类的创建 ...
- 第五篇:python高级之面向对象高级
python高级之面向对象高级 python高级之面向对象高级 本节内容 成员修饰符 特殊成员 类与对象 异常处理 反射/自省 单例模式 1.成员修饰符 python的类中只有私有成员和公有成员两 ...
- Python系列之 - 面向对象(1)
python是一门面向对象的编程语言,python中的一切均是对象. 有对象就提到类,对象和类就像是儿子和老子的关系,是不可分的一对. 什么是类 类就是具有一些共同特性的事物的统称.好比人类, ...
- python大法好——面向对象
python大法好——面向对象 Python从设计之初就已经是一门面向对象的语言,正因为如此,在Python中创建一个类和对象是很容易的.本章节我们将详细介绍Python的面向对象编程. 如果你以前没 ...
- python语法学习面向对象之继承
python语法学习面向对象之继承 转载自:http://www.cnblogs.com/Joans/archive/2012/11/09/2757368.html 只要涉及到面向对象,”类“是必须出 ...
随机推荐
- Android开发 - Retrofit 2 使用自签名的HTTPS证书进行API请求
为了确保数据传输的安全,现在越来越多的应用使用Https的方式来进行数据传输,使用https有很多有点,比如: HTTPS协议是由SSL+HTTP协议构建的可进行加密传输.身份认证的网络协议,要比ht ...
- web API简介(二):客户端储存之document.cookie API
概述 前篇:web API简介(一):API,Ajax和Fetch 客户端储存从某一方面来说和动态网站差不多.动态网站是用服务端来储存数据,而客户端储存是用客户端来储存数据.document.cook ...
- .NET手记-ASP.NET MVC快速分页的实现
对于Web应用,展示List是很常见的需求,随之而来的常见的分页组件.jQuery有现成的分页组件,网上也有着大量的第三方分页组件,都能够快速实现分页功能.但是今天我描述的是用基本的C#和html代码 ...
- 【LeetCode】9. 回文数
题目 判断一个整数是否是回文数.回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数. 示例 1:输入: 121 输出: true 示例 2:输入: -121 输出: false 解释: 从左 ...
- C# 对密码等数据进行对称性加密解密
类: /// <summary> /// DESEncrypt加密解密算法. /// </summary> public class DESEncrypt { private ...
- shell编程中的if语句
if语句在任何编程中都是必不可少.至关重要的分支语句,shell也是如此,只不过各种编程中的方式和格式有点不太一样 shell编程中的if语句基本格式如下: if [ X$1 = XA ];then ...
- linux日常运维常用命令
---查看端口占用 netstat -ap | grep 8000 ---重启nginx sudo /usr/sbin/nginx -c /usr/local/nginx/conf/nginx.con ...
- 学习之响应式Web设计---一个实例
周末闲来无事,做了一个响应式设计的例子.当然,由此并不能窥见响应式设计真谛之一斑.但,对于初次接触响应设计,对于响应式设计的概念依旧模糊不清的同学来说,或许是个启蒙! 闲语暂且不表,进入正题,这里没有 ...
- Intellij新安装初始化配置
自动编译开关 忽略大小写开关 IDEA默认是匹配大小写,此开关如果未关.你输入字符一定要符合大小写.比如你敲string是不会出现代码提示或智能补充.但是,如果你开了这个开关,你无论输入String或 ...
- redis.properties
#### env:${env} redis.maxIdle= ##最小空闲数 redis.minIdle= ##最大连接数:能够同时建立的“最大链接个数” redis.maxTotal= #每次最大连 ...