python面向对象的成员、属性等
#类成员:
#字段 self.xy =qq 。 xy=qq
#普通字段 (保存在对象里面)
#直接通过点(.)+ 字段 进行调用
#静态字段 (保存在类里面)
#静态字段属于类,在内存只保留一份 。 把公共的字段 放到类中 ,节省内存等好处
#代码从上到下解释到类就创建了
#可以通过 类.静态字段 进行访问
#方法 def xx()
# (保存在类里面)
#通过点(.) + 方法名 + 括号 进行调研
#通过 类 点(.) 方法名也可以调用 。 还是要在前面先实例化一个对象 #静态字段
class human:
address = "earth" #静态字段
def __init__(self,age):
self.age = age # 普通字段 h1 = human('20')
print(human.address) #通过类访问 静态字段
print(h1.address) #通过对象访问 静态字段 : 对象--> 类 --> 静态字段
print(h1.age) #通过对象访问 普通字段 #静态方法
class Foo:
def bar(self):
print('普通方法')
@staticmethod # 添加此装饰器后变成静态方法
def bar1(a): # 此处已经不需要self 了
print('静态方法:%s' %a) #f=Foo() # 不需要创建对象,也可以直接调用静态方法 (相当于一个函数了)
Foo.bar1(100) #通过类直接调用 #类方法
class Foo:
@classmethod
def classmd(cls): # cls 和 self意义差不多 ,此处写成 cls 。 cls 是当前类
print(cls) # cls 是类名,自动会传入
print('类方法') Foo.classmd() #属性
class Foo:
@property # 加了这个装饰器,p1 这个方法 调用起来就也可以和字段一样调用了。
def p1(self):
return 123
@p1.setter
def p1(self,var):
print(var)
@p1.deleter
def p1(self):
print('xx')
obj = Foo()
r=obj.p1 # 直接调用不需要括号 , 会直接调用 @property 下的 p1
print(r)
obj.p1=100 # 给他赋值(实际不会赋值), 会执行@p1.setter 下面的p1 (里面具体想做什么,你可以自己写) # 就是一个语法对应关系 和 赋值没关系
del obj.p1 # 删除它 (实际不会删除它), 会执行 @p1.deleter 下面的p1 # 就是一个语法对应关系 del 只是语法 不会删除的
python面向对象的成员、属性等的更多相关文章
- JavaScript面向对象(二)——成员属性、静态属性、原型属性与JS原型链
前 言 JRedu 上一篇博客中,我们介绍了JS中的面向对象,并详细的解释了this的指向问题.本篇博客,我们继续来学习JS的面向对象.来深入理解一下JavaScript OOP中的成员属性/方 ...
- python 面向对象类成员(字段 方法 属性)
一.字段 字段包括:普通字段和静态字段,他们在定义和使用中有所区别,而最本质的区别是内存中保存的位置不同, 普通字段属于对象 静态字段属于类 class Province: # 静态字段 countr ...
- Python面向对象之成员修饰符
对于这些类成员有修饰符 之前定义字段country任何对象都可以访问,是公有的 可以定义为私用属性,只有类内部的方法可以调用,外部不能直接调用,但是可以间接调用 vim day7-10.py #!/u ...
- python面向对象之类成员
面向对象编程: OOP编程是利用类和对象来创建各种模型来实现对真实世界的描述,使用面向对象编程的原因一方面是因为它可以使程序的维护和扩展变得简单,并可以大大提高程序开发效率.另外,基于面向对象的程序可 ...
- python面向对象之类成员修饰符
类的所有成员分为: 公有成员,在任何地方都能访问 私有成员,只有在类的内部才能访问 私有成员和公有成员的定义不同:私有成员命名时,前两个字符是下划线.(特殊成员除外,例如:__init__.__c ...
- Python面向对象-类成员
类的成员可以分为三大类:字段.方法和属性: 注:所有成员中,只有普通字段的内容保存对象中,即:根据此类创建了多少对象,在内存中就有多少个普通字段.而其他的成员,则都是保存在类中,即:无论对象的多少,在 ...
- Python面向对象之私有属性和私有方法
01. 应用场景及定义方式 应用场景 在实际开发中,对象 的 某些属性或方法 可能只希望 在对象的内部被使用,而 不希望在外部被访问到 私有属性 就是 对象 不希望公开的 属性 私有方法 就是 对象 ...
- python面向对象之静态属性/静态方法/类方法/组合
继续学习,不要松懈 #!/usr/bin/env python # coding:utf-8 class Campus: def __init__(self,name,addr,type): self ...
- python 面向对象(二)成员
##################################总结########################### 类的成员: 变量: 实例变量 对象.属性=xxx 类变量 ...
随机推荐
- JS应用实例1:表格各行换色
效果如下: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF ...
- Android 给WebView设置Cookie
最近项目中用到WebView访问新浪支付页面,有个要求是必须是登录状态,否则会报Token过期,然后我简单的将我从cookie中取得的ticket,即一串数字可以代表用户登录的唯一标识作为参数拼接到u ...
- 利用 js 获取地址栏参数
1.aspx页面,进行页面跳转 window.location.href = "ProviderInfo.aspx?ProviderID="+ProviderID; 2.Provi ...
- 「JavaSE 重新出发」05.01.01 equals 方法
equals 方法示例 // 代码来自<Java核心技术 卷I>P167 // 父类 public class Employee{ ... public boolean equals(Ob ...
- Eclipse配置SVN的几种方法及使用详情(此文章对Myeclipse同样适用)
一.在Eclipse里下载Subclipse插件 方法一:从Eclipse Marketplace里面下载 具体操作:打开Eclipse --> Help --> Eclipse Mark ...
- Vue.mixin Vue.extend(Vue.component)的原理与区别
1.本文将讲述 方法 Vue.extend Vue.mixin 与 new Vue({mixins:[], extend:{}})的区别与原理 先回顾一下 Vue.mixin 官网如下描述: Vue. ...
- T^T OJ 2144 并查集( 并查集... )
链接:传送门 思路:增加num[] 记录集合中的个数,maxx[] 记录集合中最大值,挺不错的并查集练习题,主要是 unite 函数里如何改变一些东西,挺好的题,能用C尽量不用C++,效率差蛮大的! ...
- python3 将两个列表生成一个字典
需求: 存在两个list如下 list1 = ["one", "two", "three"] list2 = ["1", ...
- 安装SSH、配置SSH无密码登录 ssh localhost
集群.单节点模式都需要用到 SSH 登陆(类似于远程登陆,你可以登录某台 Linux 主机,并且在上面运行命令),Ubuntu 默认已安装了 SSH client,此外还需要安装 SSH server ...
- Laravel核心解读--Contracts契约
Contracts Laravel 的契约是一组定义框架提供的核心服务的接口, 例如我们在介绍用户认证的章节中到的用户看守器契约IllumninateContractsAuthGuard 和用户提供器 ...