14.7类的成员:字段,方法

类的成员:字段和方法br/>在Python中,字段和方法都叫成员
类成员:
字段:
1.普通字段,保存在对象中,执行只能通过对象访问。
2.静态字段,保存在类中,执行可以通过类或者对象访问,内存中只保留一份。
方法:
1.普通方法保存在类中,由对象调用,self指对象。
2.静态方法,@staticmethod,保存在类中,self颜色变黑,不用必须写self参数,用类直接调用,相当去直接写一个函数。
3.类方法,@classmethod,保存在类中,潜规则,参数写成cls(class),cls指类,用类直接调用。

应用场景
1.希望在对象保存一些值,而调用方法需要用一些值----普通方法。
2.不需要任何对象中的值----静态方法。

# -*-coding:utf-8 -*-
__author__ = ‘xiaojiaxin‘
__file_name__ = ‘面向对象实例练习‘

class Foo():
    #静态变量,属于类,在内存中只保存一份
    country="中国"

    def __init__(self,n):
        #普通字段
        self.name=n
    #普通方法
    def show(self):
        print(self.name)

obj1=Foo("wang")
obj1.show()
# wang
print(Foo.country)    #静态字段可以通过访问类直接访问,它就存在类中
# 中国
# print(Foo.name)     #报错,普通字段不能通过类直接访问
# AttributeError: type object ‘Foo‘ has no attribute ‘name‘

print(obj1.country)   #静态字段还可以通过对象直接访问
# 中国
class fun():

def bar(self):
print("123")

@staticmethod    #加装饰器变成静态方法
def staticmd():
print("ok")

@classmethod    #类方法
def classmd(cls):
print(cls)
print("ok2")

fun.bar("obj2")  #与下面两行等价
123
obj2=fun()
obj2.bar()
123

fun.staticmd()    #静态方法可以用类直接调用
ok

fun.classmd()
<class ‘__main__.fun‘>
ok2

14.7类的成员:字段,方法

原文地址:http://blog.51cto.com/10777193/2102938

时间: 2024-10-31 04:18:24

14.7类的成员:字段,方法的相关文章

C#派生类中使用基类protected成员的方法

我们知道C#中通过继承可以使一个具有公共数据和方法的基类被广泛应用从而减少代码量,这样派生类会具有基类中所有成员(除构造器等),我们理所当然可以通过派生类实例来使用基类的成员.那么当基类成员被protected修饰时,我们应该怎么在派生类中使用基类成员呢,下面将介绍使用方法. 首先我们贴一段错误的使用代码: 1 class Program 2 { 3 static void Main(string[] args) 4 { 5 Console.ReadLine(); 6 7 } 8 } 9 pub

MFC 调用默认对话框类对象成员和方法

这个功能其实并不常用,然而在多线程和回调函数中要调用默认对话框类的对象成员或方法还是可能要用到的,所以做下记录. 首先声明一个全局变量用以存储默认对话框类对象指针: LPVOID pParam;//对话框对象指针 在默认对话框类的初始化函数中给该指针进行赋值: pParam = (void *)this; 在需要调用默认对话框类对象成员或方法处,通过如下代码实现调用: CPanoramicPlayerDlg *dlg = (CPanoramicPlayerDlg *)lpParam;//其中CP

Python类中的字段,方法,属性区别及StaticMethod, Property

类包含下列 静态属性 动态属性 静态方法 动态方法 class Province: #静态字段--属于类,调用方法类.字段名 memo = "中国23个省之一" #动态字段--属于对象,调用方式实例化对象.字段名 def __init__(self, name, capital, leader): self.Name = name self.Capital = capital self.Leader = leader #动态方法--属于对象 def sports_game(self):

[.net 面向对象编程基础] (9) 类的成员(字段、属性、方法)

[.net 面向对象编程基础] (9) 类的成员(字段.属性.方法) 前面定义的Person的类,里面的成员包括:字段.属性.方法.事件等,此外,前面说的嵌套类也是类的成员. a.类的成员为分:静态成员(static)和非静态成员 b.静态成员用static标识,不标识则默认为非静态成员 c.静态成员属于类所有,动态成员则属于实例所有,即对象 d.静态成员为类所有实例共享,无论类有多少实例或副本,静态成员只占用存中一块区域.非静态成员则在类的每个实例,都创建一个内存域. 下面主要说明一下类的主要

黑马程序员---Objective-C基础学习---类、对象、方法相关知识笔记

------Java培训.Android培训.iOS培训..Net培训.期待与您交流! ------- 类.对象.方法相关知识笔记 Objective-C相对于C语言有了面向对象的特性,但是ObjC又没有其他面向对象语言那么多语法特性,ObjC本身对面向对象进行了精简.下面是一些相关知识笔记. 类定义 成员变量 方法和属性 self关键字 类定义 在C#.Java等其他高级语言中定义一个类是相当简单点的,直接一个关键字class加一对大括号基本就完成了,但是在ObjC中类的定义相对变化比较大.现

字段 | 方法 | 属性 | 类的成员 | Python

# ----------------------------------------- 字段 class Class: # 静态字段,属于类 # 已经创建,并且存放在类里,而不是每创建一个对象创建一次; country = '中国' def __init__(self, name): # 普通字段-->> 保存在创建的对象里 self.name = name # 普通方法-->> 保存在类里 def show(self): print(self.name) # 实例化对象 obj

PHP 如何定义类、成员属性及其操作与魔术方法

PHP 类的定义与属性 一.类的定义类的关键字定义使用 class :例:class test{ } 二.类的属性与方法 class test{ $name = 'LH' ; //成员属性........ //成员方法........public function t1(){ } }三.定义一个不能继承的类 final class test{ }//final关键字只能修饰类和方法.不能用来修饰成员属性! 四.类.成员属性及方法的声明 1.public //公用的 表示全局的,类内部外部子类都可

我的Java——类 字段 方法

编写Java程序主要就是定义各种类 类是现实世界中各类对象的抽象 它表明了对象的属性及行为 在程序中 类是用class来表示的 对象的属性则用变量来表示 对象的行为则用函数来表示 在Java程序中 类中的变量称为字段(field 也称  “域”),类中的函数称为方法(method) 定义类中的字段和方法 [例]表示“人”的类的定义Person class Person{ String name; int age; void sayHello(){ System.out.println("Hell

福利-&gt;KVC+Runtime获取类/对象的属性/成员变量/方法/协议并实现字典转模型

我们知道,KVC+Runtime可以做非常多的事情.有了这个,我们可以实现很多的效果. 这里来个福利,利用KVC+Runtime获取类/对象的所有成员变量.属性.方法及协议: 并利用它来实现字典转模型. 废话不多说,直接上代码: 1.工具类(其实就是NSObject的一个分类)头文件 1 #import <Foundation/Foundation.h> 2 3 @interface NSObject (YSRuntime) 4 5 /** 6 返回当前类的属性数组 7 8 @return 属