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. Java SE1.6中的Synchronized

    1 引言 在多线程并发编程中Synchronized一直是元老级角色,很多人都会称呼它为重量级锁,但是随着Java SE1.6对Synchronized进行了各种优化之后,有些情况下它并不那么重了,本 ...

  2. 第69天:jQuery入口函数

    一.jQuery入口函数 1.$(document).ready(function(){}); 2.$(function(){}); 二.事件处理程序  1.事件源 Js方式:document.get ...

  3. 【Windows】Windows Restart Manager 重启管理器

    Restart Manager(以下简称RM)可以减少或避免安装或更新程序所需要的系统重启次数.安装(或更新)过程中需要重启的主要原因是需要更新的某些文件当前正被一些其它程序或服务所使用.RM允许除关 ...

  4. hdu 3191 How Many Paths Are There (次短路径数)

    How Many Paths Are There Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java ...

  5. [JXOI2017]颜色 线段树扫描线 + 单调栈

    ---题面--- 题解: 首先题目要求删除一些颜色,换个说法就是要求保留一些颜色,那么观察到,如果我们设ll[i]和rr[i]分别表示颜色i出现的最左边的那个点和最右边的那个点,那么题目就是在要求我们 ...

  6. [bzoj4398] 福慧双修 最短路 二进制分组

    ---题面--- 题解: 考场上看的这道题,,,当时70分算法打挂了,今天才知道这个也是原题.... 首先,对于不跟1相邻的边,肯定不会经过两次,因为经过两次就回来了,除了增加路径长度之外没有任何意义 ...

  7. 从零开始学Linux系统(一)之引导流程解析

    Linux系统:分时多用户多任务的操作系统: Linux系统引导流程: inittab配置文件中: 定义了linux系统的运行的7个级别:从0~6 0.6:分别代表关机和重启,不建议设置为默认的运行级 ...

  8. C/C++中字符串与数字相互转换

    数字转字符串: 用C++的streanstream: #include <sstream> #Include <string> string num2str(double i) ...

  9. HDU1542 扫描线+离散化

    Atlantis Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Su ...

  10. 远端WEB服务器上存在/robots.txt文件

    解决方案: 1. 可直接删除(可参考:http://zh.wikipedia.org/wiki/Robots.txt) ,但不利于SEO等 2. 修改Web服务器配置 可以通过Web服务器(如Apac ...