python 面向对象(成员,静态,类)的(变量,方法)区别

静态方法是使用@staticmethod装饰的方法,并且参数表中不需要self或者cls,可以访问类成员变量

默认的方法是有self的,是成员方法,可以访问私有变量和方法(通过self.xxx),或者访问类方法或变量(通过类名.方法名变量名)

类方法使用@classmethod来装饰,参数表中不需要self,但需要cls参数和当前类关联。不能访问成员变量和方法,但是可以通过cls.xxx访问类方法或类变量

一下是参考了网上的一些大神的总结:

静态成员方法: 不能访问类属性,实例属性,相当于一个独立的方法,可以理解和类没关系,只是用类加了个作用域,比如:一个类,有三种加密算法,可以考虑静态方法;

类成员方法   : 能访问类属性,无法访问实例属性,这里要注意,python是动态语言,和c++不同,实例是可以动态添加属性的,即实例的属性和类的属性不一定一样

时间: 2024-10-05 22:28:44

python 面向对象(成员,静态,类)的(变量,方法)区别的相关文章

Python面向对象 --- 新旧式类、私有方法、类属性和类方法、静态方法

一.Python面向对象中的新旧式类 1)新式类(推荐使用):在定义类时,类后边括号里要继承基类(object).在python3.x中若没有指定父类,会默认使用的是object作为基类:在python2.x中,若没指定父类,则不会以object作为基类. 2)旧式类(经典类):在定义类时,类后边括号中不用继承object类,甚至不用括号. 3)dir方法是用来查看类的内置方法. 二.私有方法和属性 1)私有属性是对象不希望公开的属性:私有方法是对象不希望公开的方法.在定义私有属性和方法时,在属

python面向对象程序设计(类成员)第二节

python 面向对象程序设计(类成员) 目录: (1)        类成员和实例成员 (2)        公有成员和私有成员 (3)        方法 (一)类成员与实例成员: 实例属性属于实例(对象),只能通过对象名访问. 类属性属于类,类名或对象名都可以访问,属于类的数据成员是在类中所有方法之外定义的. class Car:     price = 1000   #类属性     def __init__(self,c):         self.color = c car1 =

Python面向对象进阶及类成员

再次了解多继承 先来一段代码 #!/usr/bin/env python # _*_ coding:utf-8 _*_ class A:    def bar(self):        print("BAR")        self.f1() class B(A):    def f1(self):        print("B") class C:    def f1(self):        print("C") class D(C,

Python面向对象编程、类

一.面向对象编程 面向对象--Object Oriented Programming,简称oop,是一种程序设计思想.在说面向对象之前,先说一下什么是编程范式,编程范式你按照什么方式来去编程,去实现一个功能.举个例子,你要做饭,可以用电磁炉,也可以用煤气灶.不同的编程范式本质上代表对各种类型的任务采取的不同的解决问题的思路,两种最重要的编程范式分别是面向过程编程和面向对象编程. 提到面向对象,就不得不提到另一种编程思想,面向过程:什么是面向过程呢,面向过程的思想是把一个项目.一件事情按照一定的顺

python面向对象之静态属性/静态方法/类方法/组合

#!/usr/bin/env python # coding:utf-8 class Campus: def __init__(self,name,addr,type): self.Name = name self.Addr = addr self.Type = type def details(self): print("学样的详细信息, 名称:%s 地址:%s 类型:%s" %(self.Name,self.Addr,self.Type) ) c1 = Campus("南

Python -- 面向对象编程、类和实例、访问限制

面向对象编程 Object Oriented Programming,简称OOP,是一种程序设计思想.OOP把对象作为程序的基本单元,一个对象包含了数据和操作数据的函数. 面向过程的程序设计把计算机程序视为一系列的命令集合,即一组函数的顺序执行.为了简化程序设计,面向过程把函数继续切分为子函数,即把大块函数通过切割成小块函数来降低系统的复杂度. 而面向对象的程序设计把计算机程序视为一组对象的集合,而每个对象都可以接收其他对象发过来的消息,并处理这些消息,计算机程序的执行就是一系列消息在各个对象之

类的成员,类的特殊方法

类的成员: 在类中的私有字段和私有方法是不能被类意外的方法调用的.只能在类的内使用. 在普通字段和方法前加两个下划线就可以把普通字段定义成私有字段或方法. 在子类中,不能执行父类中的方法,不能获得父类的字段.示例: class bar(): def __init__(self): self.name = 'bar_name' self.__age = 18 def get_age(self): return (self.__age) class b(bar): def __init__(self

获取class对象的三种方法以及通过Class对象获取某个类中变量,方法,访问成员

public class ReflexAndClass { public static void main(String[] args) throws Exception { /** * 获取Class对象的三种方式 * 1 Object --> getClass(); * 2 任何数据类型(包括基本数据类型)都有一个静态的class属性 * 3 通过Class类的静态方法:forName(String className)(常用) * * * 注意:在运行期间,一个类,只有一个Class对象产

python面向对象高级:反射、魔法方法、元类

自省/反射什么是反射?自省也称作反射,这个性质展示了某对象是如何在运行期取得自身信息的.并且在python里,反射可以使得程序运行时对象拥有增删改查它本身属性或行为的一种能力如果Python不支持某种形式的自省功能,dir和type内建函数,将很难正常工作.还有那些特殊属性,像__dict__,__name__及__doc__反射的使用场景? 即插即用,即可以事先定义好接口,接口只有在被完成后才会真正执行 比如:如果和别人共同合作开发项目,但是需要用到对方的类的方法,对方还没完成 f1=FtpC