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 类变量 ...
随机推荐
- PHP分页组件:Paginator
安装 composer require "jasongrimes/paginator:~1.0" 使用 <?php require '../vendor/autoload.p ...
- Python 对象初识
# Demo1class Penson: animal = 'big mom' plant = 'flower' def __init__(self,name,age,sex,job): self.n ...
- .NET XML POST 请求
//请求体,XML参数 string xmlstring = @"<root></root>“; //请求URL string postUrl ="http ...
- Linux中设置vim自动在运算符号两边加上空格
vim中设置自动在=+-之类的运算符号左右两边加上空格.原版的vim不带这个功能,写出的代码例如z=x+y,不美观,很多编译器(如VS)能够自动在符号两边加上空格,如z = x + y,看起来比较美观 ...
- CDR X7正版优惠,3折来袭,好礼相送,行不行动?
意料之中的是,CorelDRAW系列软件在618期间成绩再次突破历史,成为新高.因为X7版本活动在6月15号的才上, 加之在此之前从没有过X7的活动优惠,势头之猛,可想而知,如此一来,官方预定的限量2 ...
- 在centos6.5上升级php-libxml版本到2.9.0
当前系统,软件版本说明: php libxml glibc 2.12 zlib xz-libs 需求: 应开发的需求,线上环境,php-libxml版本升级到2.8以上. 升级步骤:1.安装工具集 y ...
- Spring Batch 高级-
spring batch / 并行处理 / 多线程 分区 1. 并行处理,多线程,分区 http://blog.csdn.net/github_36849773/article/details/692 ...
- Django框架 part 2
web 框架本质 我们可以这样理解:所有的Web应用本质上就是一个socket服务端,而用户的浏览器就是一个socket客户端. 这样我们就可以自己实现Web框架了. 半成品自定义web框架 impo ...
- 利用cookie判断文件下载完成
在网页下载文件时,该文件又是通过后台代码生成的,比如报表之类的.当需要生成文件过大时会耗费很多时间,而文件生成好传到页面的时候也没有事件可以监听它,像微软官网,谷歌,百度等下载方式都是通过提示五秒过后 ...
- HDU 1576 A/B( 逆元水 )
链接:传送门 思路: 现在给出 n = A % 9973,n = A - A/9973×9973,已知 B|A ,设 A = Bx,可以得到如下形式的式子:Bx + 9973×y = n ,因为gcd ...