1.静态方法:

#!/usr/bin/env python
# _*_ coding:utf-8 _*_
# Author:CarsonLi class Dog(object):
def __init__(self,name):
self.name=name
"""
静态方法
只是名义上归类管理, 实际上在静态方法里访问不了类或实例中的任何属性
"""
@staticmethod
def eat(aaa):
print(aaa) d=Dog("小明")
d.eat("asdfg")

  运行结果:

asdfg

2.类方法:

#!/usr/bin/env python
# _*_ coding:utf-8 _*_
# Author:CarsonLi
'''
类方法
只能访问类变量,不能访问实例变量
''' class Dog(object):
'''
类方法
只能访问类变量,不能访问实例变量
'''
addr = "深圳"
def __init__(self,name):
self.name=name @classmethod
def eat(self,age):
print(self.addr,age) d=Dog("小明")
d.eat(25)

 运行结果:

深圳 25

3.属性方法:

  属性方法设置参数和删除参数的函数名可以和该参数名一样,也可以不一样

#!/usr/bin/env python
# _*_ coding:utf-8 _*_
# Author:CarsonLi
"""
属性方法
把一个方法变成一个静态属性
"""
class Car(object):
def __init__(self,name,logo):
self.name=name
self.logo=logo
"""属性方法"""
@property
def drop(self):
print("获取速度%s"%self.sudu) """为属性方法设置属性,相当于传值"""
@drop.setter
def setdrop(self,sudu):
self.sudu=sudu
print("设置速度%s"%self.sudu) """删除属性方法的自己的属性"""
@drop.deleter
def deldrop(self):
del self.sudu """ 设置属性和删除属性的方法名和属性方法名一致 """
@property
def color(self):
print("%s的颜色为%s"%(self.name,self.colour)) @color.setter
def color(self,colour):
self.colour=colour
print("设置%s的颜色为%s"%(self.name,self.colour)) @color.deleter
def color(self):
del self.colour bmw=Car("华晨马宝宝","BMW")
#属性方法中属性的设置 触发@drop.setter
bmw.setdrop="180" #运行结果:当前速度是180
#属性方法的调用不用括号
bmw.drop #运行结果:180千米每小时
#触发 @drop.deleter
del bmw.deldrop bmw.color="blue" #运行结果:设置华晨马宝宝的颜色为blue
bmw.color #运行结果:华晨马宝宝的颜色为blue
del bmw.color

  

Python3 面向对象编程高级语法的更多相关文章

  1. 大数据技术之_16_Scala学习_06_面向对象编程-高级+隐式转换和隐式值

    第八章 面向对象编程-高级8.1 静态属性和静态方法8.1.1 静态属性-提出问题8.1.2 基本介绍8.1.3 伴生对象的快速入门8.1.4 伴生对象的小结8.1.5 最佳实践-使用伴生对象解决小孩 ...

  2. js面向对象编程-高级内容

    JavaScript面向对象 一.为每个对象动态添加属性或方法 功能:返回对象类型原型的引用 prototype的使用 格式:class.prototype 场景: 比如说:A写了一个类,交给B,B在 ...

  3. Python面向对象编程高级特性

    ***这里还是根据网上资料,主要是廖雪峰老师的教程学习的笔记,主要介绍python面向对象的高级特性,笔记不全,只是记录自己觉得容易出错的地方*** 1.python作为一种动态语言,他的动态绑定机制 ...

  4. Python3面向对象编程实例

    /*认真研究完这个实例,理解python面向对象编程的方法*/class Person: """人员信息""" # 姓名(共有属性) nam ...

  5. Python3 面向对象编程

    小案例: #!/usr/bin/env python # _*_ coding:utf-8 _*_ # Author:Bert import sys class Role(object): n=&qu ...

  6. 8. Scala面向对象编程(高级部分)

    8.1 静态属性和静态方法 8.1.1 静态属性-提出问题 有一群小孩在玩堆雪人,不时有新的小孩加入,请问如何知道现在共有多少人在玩?请使用面向对象的思想,编写程序解决 8.1.2 基本介绍 -Sca ...

  7. python学习笔记1 -- 面向对象编程高级编程1

    说起高级其实也就是些基础的东西,但是活用和熟用肯定会大幅度提升代码质量 首先要记录的是面向对象的灵活性,及如何去控制其灵活性,她允许你在实例中新增属性和方法,允许你给类新增属性和方法,也支持在定义类时 ...

  8. python3 面向对象编程--类的封装和继承

    #python3import refrom urllib import requestimport os class PosterSpider(object):     def __init__(se ...

  9. python学习20之面向对象编程高级

    '''''''''1.动态绑定:对于一个类,我们可以对它的实例动态绑定新的属性或方法.为了使所有的实例均可以使用动态绑定的属性和方法,我们也可以采用对类直接动态绑定'''class Student() ...

随机推荐

  1. python数据类型二

    阅读目录 1.列表的去嵌套 2.元组 3.range 列表的增删改查 一,增: 注意  list和str是不一样的,lst可以发生改变,所以直接就在原来的对象上进行可操作 追加模式 lst = ['麻 ...

  2. dev_queue_xmit 发生了什么?skb还会在哪里缓存

    见 codebox/net/qdisk/xmit.log中保存了一份记录 调用关系 sch_direct_xmit --> dev_hard_start_xmit --> xmit_one ...

  3. Spring MVC实践

    MVC 设计概述 在早期 Java Web 的开发中,统一把显示层.控制层.数据层的操作全部交给 JSP 或者 JavaBean 来进行处理,我们称之为 Model1: 出现的弊端: JSP 和 Ja ...

  4. 【其他】VS提示不一致的行尾

    应该是用不同的编辑器或平台编辑过同一个文件,比如Windows是\r\n,有的系统只有一个\n, 需要都统一,否则代码可能会堆成一堆.

  5. 将下载到本地的JAR包手动添加到Maven仓库(转)

    常用Maven仓库网址:http://mvnrepository.com/http://search.maven.org/http://repository.sonatype.org/content/ ...

  6. P3986 斐波那契数列

    题目描述 定义一个数列: f(0)=a,f(1)=b,f(n)=f(n−1)+f(n−2) 其中 a,b均为正整数,n≥2 . 问有多少种 (a,b),使得 k 出现在这个数列里,且不是前两项. 由于 ...

  7. CenOS 定时任务,at和crontab

    1.一次性定时任务,只执行一次 语法:# at [参数] [时间] at> 执行的指令 退出at命令 ctrl+d 1.1 mini安装版本可能没有预装at 安装at yum -y instal ...

  8. [洛谷P2408]不同子串个数

    题目大意:给你一个字符串,求其中本质不同的字串的个数 题解:同[洛谷P4070][SDOI2016]生成魔咒,只要最后再输出就行了 卡点:无 C++ Code: #include <cstdio ...

  9. CF724E Goods transportation 最小割 DP

    照惯例CF的题不放原题链接... 题意:一个序列上有n个点,每个点有权值pi和si.表示这个点一开始有pi个物品,最多可以卖出si个物品,每个点都可以把物品向编号更大的点运输,但是对于i < j ...

  10. BZOJ4653 & 洛谷1712 & UOJ222:[NOI2016]区间——题解

    https://www.lydsy.com/JudgeOnline/problem.php?id=4653 https://www.luogu.org/problemnew/show/P1712 ht ...