python-面向对象增强版
class Person:
def __init__(self, name, id, gender, birth):
self.name = name # 实例变量 对象里的变量
self.id = id
self.gender = gender
self.birth = birth
p = Person(", "不详", "1900-12-15")
print(p.birth)
p.birth = "1840-5-6"
print(p.birth)
# 实例变量一般使用 对象.属性
print(p.name)
class Computer:
# 实例方法
def play(self):
print("电脑可以扫雷")
# 在定义实例方法的时候. 必须给出一个参数 self
# 形参的第一个参数, 自动的把对象给传递进来
def work(self): # self 是当前类的对象
print(self)
print("电脑用来工作")
c = Computer()
c.work() # 调用的时候不需要手动给出self
print(c)
# 字符串操作. 列表操作. 字典操作. 元组操作.....
# s = "你好啊"
# s.replace("你", "我")
class Person:
country = "大清"
def __init__(self, name, gender):
self.name = name
self.gender = gender
p = Person("武sir", "未知")
p2 = Person("太白", "两性")
Person.country = "中国" # 类变量最好是使用类名来访问
# p.country = "大清" # 大坑::没有修改类变量
# p2.country = "大明"
print(p.country) # 类变量可以给对象使用
print(p2.country) # 类变量可以给对象使用
class Person:
# 实例方法
def chi(self):
print("人会吃")
@classmethod # 装饰器, 此时这个方法是一个类方法
def he(cls): # 此时接收到的cls是类名
# print(cls)
print("人会喝")
# 用对象访问
# p = Person()
# p.he() # 在调用类方法的时候. 默认的把类名传递给类方法
# print(Person)
# 类方法一般用类名去访问
Person.he() # 类方法
class Person:
@staticmethod # 静态方法
def yue():
print("fsadf")
# 静态方法可以使用对象访问. 也可以使用类名访问. 但是一般推荐使用类名访问
p = Person()
p.yue()
# 推荐使用类名访问
Person.yue()
class Person:
def __init__(self, name, gender, birth):
self.name = name
self.gender = gender
self.birth = birth # 2000 2018
# 年龄 -> 应该是算出来的. 而不是直接存储
@property # 把一个方法更改成一个属性, 每次拿属性的时候都会自动的去执行这个方法
# 方法的返回值就是属性值
def age(self): # 实例方法
print("我是方法")
return 2018 - self.birth
p1 = Person("武sir", "未知", 2000)
print(p1.age) # 看着像一个变量一样使用, 实际上这里是调用的一个方法
print(p1.age)
# p1.age = 26 # 不可以的, 因为age是一个方法. 不是一个变量
class Person:
__qie = "潘潘" # 类变量
def __init__(self, name, mimi):
self.name = name
self.__mimi = mimi # 私有内容 实例变量
def gaosu(self):
print(f"把秘密告诉了太白, 第二天所有人都知道了{self.__mimi}")
print(Person.__qie) # 私有的类变量只能在类中调用
# return self.__mimi
def __yue(self): # 私有的实例方法
print("我要和宝宝约")
@staticmethod
def __koujiao():
print("韩志远希望和嫂子一起抠脚")
@classmethod
def __fangqi(cls):
print("和嫂子一起放气")
# p = Person("wusir", "和嫂子的故事")
# # print(p.__mimi) # 私有的内容只能在类里面调用
# p.gaosu()
# print(Person.__qie)
# p = Person("wusir", "嫂子的故事")
# p.__yue()
# Person.__koujiao()
python-面向对象增强版的更多相关文章
- (数据科学学习手札142)dill:Python中增强版的pickle
本文示例代码已上传至我的Github仓库https://github.com/CNFeffery/DataScienceStudyNotes 1 简介 大家好我是费老师,相信不少读者朋友们都在Pyth ...
- python 面向对象初级篇
Python 面向对象(初级篇) 概述 面向过程:根据业务逻辑从上到下写垒代码 函数式:将某功能代码封装到函数中,日后便无需重复编写,仅调用函数即可 面向对象:对函数进行分类和封装,让开发" ...
- 《zw版·delphi与halcon系列原创教程》zw版_THOperatorSetX控件函数列表 v11中文增强版
<zw版·delphi与halcon系列原创教程>zw版_THOperatorSetX控件函数列表v11中文增强版 Halcon虽然庞大,光HALCONXLib_TLB.pas文件,源码就 ...
- Python开发【第七篇】:面向对象 和 python面向对象(初级篇)(上)
Python 面向对象(初级篇) 51CTO同步发布地址:http://3060674.blog.51cto.com/3050674/1689163 概述 面向过程:根据业务逻辑从上到下写垒代码 ...
- js原生设计模式——4安全的工厂方法模式之oop编程增强版
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8&qu ...
- Python面向对象编程指南
Python面向对象编程指南(高清版)PDF 百度网盘 链接:https://pan.baidu.com/s/1SbD4gum4yGcUruH9icTPCQ 提取码:fzk5 复制这段内容后打开百度网 ...
- pytorch Debug —交互式调试工具Pdb (ipdb是增强版的pdb)-1-使用说明
初学时大多使用print或log调试程序,这在小规模的程序下很方便 但是更好的方法是一边运行一边检查里面的变量和方法 1.Pdb Pdb是一个交互式的调试工具,集成于Python标准库中 Pdb能让你 ...
- 【转】Python 面向对象(初级篇)
[转]Python 面向对象(初级篇) 51CTO同步发布地址:http://3060674.blog.51cto.com/3050674/1689163 概述 面向过程:根据业务逻辑从上到下写垒代码 ...
- python 面向对象高级应用(三)
目录: isinstance(obj,cls)和issubclass(sub,super) 反射 __setattr__,__delattr__,__getattr__ 二次加工标准类型(包装) __ ...
- ~~番外:说说Python 面向对象编程~~
进击のpython Python 是支持面向对象的 很多情况下使用面向对象编程会使得代码更加容易扩展,并且可维护性更高 但是如果你写的多了或者某一对象非常复杂了,其中的一些写法会相当相当繁琐 而且我们 ...
随机推荐
- 全排列问题Ⅰ(Java实现)
给定一个没有重复数字的序列,返回其所有可能的全排列. 示例: 输入: [1,2,3] 输出: [ [1,2,3], [1,3,2], [2,1,3], [2,3,1], [3,1,2], [3,2,1 ...
- Codeforces 488B - Candy Boxes
B. Candy Boxes 题目链接:http://codeforces.com/problemset/problem/488/B time limit per test 1 second memo ...
- js正则表达式的积累
验证数字:^[0-9]*$ 验证n位的数字:^\d{n}$ 验证至少n位数字:^\d{n,}$ 验证m-n位的数字:^\d{m,n}$ 验证零和非零开头的数字:^(0|[1-9][0-9]*)$ 验证 ...
- 全栈性能测试修炼宝典--Jmeter实战(二)
性能测试初体验 1.测试分类 从图中可以看出,性能测试在整个软件测试环节中占了50%的内容,比如负载测试.压力测试.性能测试.大数据量测试.恢复测试.内容泄露测试.竞品测试(比较测试)和可靠性测试. ...
- SublimeText3按ctrl+b执行python无反应
现象:在Sublime中打开.py文件,按”ctrl+b”执行时无反应.点击工具->编译系统中已经有且识别到Python,但执行”run(ctrl+shift+b)”时无反应,Sublime左下 ...
- python中configparser模块的使用
configparser模块用于生成和修改常见配置文档,当前模块的名称在 python 3.x 版本中变更为 configparser. 首先要写一个如下所示的配置文件: [DEFAULT] serv ...
- 雷林鹏分享:XML 元素
XML 元素 XML 文档包含 XML 元素. 什么是 XML 元素? XML 元素指的是从(且包括)开始标签直到(且包括)结束标签的部分. 一个元素可以包含: 其他元素 文本 属性 或混合以上所有. ...
- 图像识别 | AI在医学上的应用 | 深度学习 | 迁移学习
参考:登上<Cell>封面的AI医疗影像诊断系统:机器之心专访UCSD张康教授 Identifying Medical Diagnoses and Treatable Diseases b ...
- 教你一招 - 如何安装nopcommerce2.5
教你一招 - 如何安装nopcommerce2.5 29. 五月 2012 16:22 / wcf / 教你一招 . 解决方案 ...
- Confluence 6 自定义你的空间
通过对你的空间进行界面的自定义能够让你的空间更加出类拔萃. 如果你具有空间管理员权限,你可以修改你空间的颜色配色,添加你自己的空间标识,选择是否在你空间中显示边栏.或者你可以进入 Atlassian ...