精华内容
下载资源
问答
  • 类函数和方法子类的关系: 格式: #例: class Cat(): #创建一个叫Cat的 sSex=None #定义这个里有三个变量:sSex、sName、sAge的值为空值 sName=None sAge=None def __init__(self,sex,name,age): #在叫...

    python——类函数和类调用

    1.类函数:
    格式:

    #例1:
    class Cat():                            #创建一个叫Cat的类
        sSex=None                           #定义这个类里有三个变量:sSex、sName、sAge的值为空值
        sName=None
        sAge=None
        def __init__(self,sex,name,age):    #在叫Cat的类里自定义一个初始化待赋值函数(必须在初始化函数括号内赋值)
            self.sSex=sex                   #这个函数的内容是,三个变量分别等于三个虚拟参数(name, sex, age)
            self.sName=name                 #这三个虚拟参数待赋值
            self.sAge=age
            print(f'这里有一只姓名{name}年龄{age}性别{sex}的猫')      #这个函数的内容还包括输出:'这里有一只姓名{name}年龄{age}性别{sex}的猫'
        def roar(self):                     #在叫Cat的类里自定义一个方法叫roar(不在初始化括号内都叫方法)
            print('-----喵喵喵----')         #这个方法的内容是,输出'-----喵喵喵 - ---'
    
    class Tiger(Cat):                       #创建一个叫Tiger的类,他是Cat的子类
        sSex=None                           #定义这个类里有三个变量:sSex、sName、sAge的值为空值(可不写,不写则默认继承Cat类的三个变量)
        sName=None
        sAge=None
        def __init__(self,sex,name,age):     #在叫Tiger的类里自定义一个初始化待赋值函数(可不写,不写则默认继承Cat类的三个变量)
            self.sSex=sex                    #这个函数的内容是,三个变量分别等于三个虚拟参数(name, sex, age)(可不写,不写则默认继承Cat类的三个变量)
            self.sName=name
            self.sAge=age
            print(f'这里有一只姓名{name}年龄{age}性别{sex}的老虎')    #这个函数的内容还包括输出:'这里有一只姓名{name}年龄{age}性别{sex}的老虎'(可不写,不写则默认继承Cat类的输出内容)
        def roar(self):                       #在叫Tiger的类里自定义一个方法叫roar
            print('-----哦呜哦呜----')         #这个方法的内容是,输出'-----哦呜哦呜 - ---'
    
    
    if __name__ == '__main__':                 #固定格式,上面是定义的类和函数,下面存放函数的调用
    
        cat=Cat(name='小白',sex='母',age='3岁') #新建一个叫cat的变量,调用叫做Cat的类,给前面定义的三个虚参赋予3个值[^1]
        cat.roar()                             #变量cat调用叫roar的方法
        tiger=Tiger(name='东北虎',sex='公',age='6岁') #新建一个叫tiger的变量,调用叫做Tiger的类,给前面定义的三个虚参赋予3个值
        tiger.roar()                           #变量tiger调用叫eat的方法
    
    

    2.类调用(即导入另外一个脚本的类):
    可以通过一个脚本来调用另外一个脚本,比如把会重复调用的类都放到一个脚本里,需要时可随时通过文件路径在另一个脚本中调用。
    格式:from 路径 import 需要调用的类

    #例2:
    以例1为例,假设父类Cat位于如下图红框位置

    在这里插入图片描述

    子类Tiger位于如下图副本文件中,当运行副本文件时就会报错,因为无法直接调用另一文件中的类。

    在这里插入图片描述

    此时就可以通过【from python.day416.day416__python_考试 import Cat】
    来调用非同一脚本中的类,再次运行,父类Cat被成功调用,程序就不会报错了。

    展开全文
  • python中可以把魔法函数看作是python内置一些接口协议。不同类型由不同协议构成,当我们实现了某种协议,实际上就可以认为满足这种类型。 在python中有一个模块collectionsabc抽象中,给我们提供了...

    一、魔法函数与协议

    在python中可以把魔法函数看作是python内置的一些接口和协议。不同的类型由不同的协议构成,当我们实现了某种协议,实际上就可以认为满足这种类型。
    在python中有一个模块collections的abc抽象类中,给我们提供了实现这些类型需要继承的方法。(可以把他看做python给我们提供的文档)
    魔法函数是对于类型拥有的行为的约束。(行为约束)
    python更加注重的是对象拥有的行为,而不是它属于哪个类型。(isinstance方法的实质)
    最特殊的两个魔法函数:

    _ new__和__init_

    二、元类,类和实例之间的关系

    在这里插入图片描述

    元类:能够创建类的类,我们称作元类,type就是最原始的一个元类。
    如果要自定义元类,必须要显示继承于type类。class Model(object,metaclass=type):pass
    类:也叫类对象,python中一切皆是对象,类对象 是由 type 类实例化产生 ,(type也是一个类,它还实例化自己,这就做到了一些皆对象)也就是 type 类中的__new__方法。
    实例对象:而实例对象是由该类的__new__方法进行创建对象。
    type有两个用处:
    1.type当做函数用,同__class__属性作用相同,返回对象的类型
    2.type当做类用,是元类,用于创建其它的类。
    class meta(type):
        def __new__(cls, *args, **kwargs):
            print("i am meta")
            return super().__new__(cls,*args,**kwargs)
    
    class obj(object):
        def __new__(cls, *args, **kwargs):
            print("i am obj")
            return super().__new__(cls)
    
    
    class BaseModel(obj,metaclass=meta):  
    
        def __init__(self):
    
            pass
    
    
    user =BaseModel()
    

    结果:

    i am meta
    i am obj
    
    执行顺序:
    1、当执行到BaseModel时,会找到他的元类metaclass=meta,然后先创建BaseModel这个类对象,然后必须返回该类对象。
    2、然后,执行到user =BaseModel()这句,通过找到__new__方法,也就是继承的类中的__new__方法。它会为对象分配内存地址,并返回对象的引用,调用类中的__new__函数(该函数是静态函数,调用时需要主动传递cls)创建该类的实例对象,必须返回该实例对象。一般是object基类中的提供的__new__方法。
    3、该实例接着调用它的__init__函数初始化实例变量。
    展开全文
  • 假设有Class A Class B两个,Class A中定义了a(),Class B中定义了b(). 现在我想在Class B中调用 Class A中的函数a()。此处介绍三种调用方法: 方法一: 在Class B中所定义fuction()中声明Class A对象a,...
  • 今天小编就为大家分享一篇对Python Class之间函数的调用关系详解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧 假设有Class A Class B两个,Class A中定义了a(),Class B中定义了b(). ...

    今天小编就为大家分享一篇对Python Class之间函数的调用关系详解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    假设有Class A 和 Class B两个类,Class A中定义了a(),Class B中定义了b().

    现在我想在Class B中调用 Class A中的函数a()。此处介绍三种调用方法:

    方法一:

    在Class B中所定义的fuction()中声明Class A的对象a,然后用对象a来调用Class A的函数a().

    最后在main中声明Class B的对象b,让b调用该类中的fuction()

    .#!/usr/bin/env python
    # -*- coding: utf-8 -*-
      
    class A():
     def __init__(self,parent):
     self.parent = parent
      
     def a(self):
     print 'Class A'
      
      
    class B():
     def fuction(self):
     a = A(None)
     a.a()
      
    if __name__ == '__main__':
     b = B()
     b.fuction()
    

    方法二:

    在Class B的__init__()中将Class A和Class B产生关联,具体方法如下code。

    首先在main中声明Class A的对象a,然后将对象a传入到Class B的__init__(self,object)中,这样self.object就指向Class A。

    就可以调用Class A中的函数了。

    #!/usr/bin/env python
    # -*- coding: utf-8 -*-
      
    class A():
     def __init__(self,parent):
     self.parent = parent
      
     def a(self):
     print "Class A"
      
    class B(object):
     def __init__(self,object):
     self.object = object
     self.object.a()
      
     def b(self):
     print "Class B"
      
    if __name__ == '__main__':
      
     a = A(None)
     b = B(a)
     b.b()
    

    方法三:

    直接在Class B中声明Class A的对象,该对象是Class B的self.A_object。

    #!/usr/bin/env python
    # -*- coding: utf-8 -*-
      
    class A():
      
     def a(self):
     print "Class A"
      
    class B(object):
     def __init__(self):
     self.A_object = A()
     self.A_object.a()
      
     def b(self):
     print "Class B"
      
    if __name__ == '__main__':
      
     b = B()
     b.b()
    

    以上这篇对Python Class之间函数的调用关系详解就是小编分享给大家的全部内容了,希望能给大家一个参考

    非常感谢你的阅读
    大学的时候选择了自学python,工作了发现吃了计算机基础不好的亏,学历不行这是
    没办法的事,只能后天弥补,于是在编码之外开启了自己的逆袭之路,不断的学习python核心知识,深入的研习计算机基础知识,整理好了,我放在我们的Python学习扣qun:774711191,如果你也不甘平庸,那就与我一起在编码之外,不断成长吧!
    其实这里不仅有技术,更有那些技术之外的东西,比如,如何做一个精致的程序员,而不是“屌丝”,程序员本身就是高贵的一种存在啊,难道不是吗?[点击加入]想做你自己想成为高尚人,加油!
    @本文来源于公众号:csdn2299,喜欢可以关注公众号 程序员学府

    展开全文
  • Python Class之间函数的调用关系

    万次阅读 2016-03-30 16:15:15
    假设有Class A Class B两个,Class A中定义了a(),Class B中定义了b(). 现在我想在Class B中调用 Class A中的函数a()。此处介绍两种调用方法: 方法一: 在Class B中所定义fuction()中声明Class A对象a,...

    假设有Class  A 和 Class B两个类,Class A中定义了a(),Class B中定义了b().

    现在我想在Class B中调用 Class A中的函数a()。此处介绍三种调用方法:


    方法一:

    在Class B中所定义的fuction()中声明Class A的对象a,然后用对象a来调用Class A的函数a().

    最后在main中声明Class B的对象b,让b调用该类中的fuction().

    #!/usr/bin/env python
    # -*- coding: utf-8 -*-
    
    class A():
    	def __init__(self,parent):
    		self.parent = parent
    
    	def a(self):
    		print 'Class A'
    
    
    class  B():
    	def fuction(self):
    		a = A(None)
    		a.a()
    
    if __name__ == '__main__':
    	b = B()
    	b.fuction()


    方法二:

    在Class B的__init__()中将Class A和Class B产生关联,具体方法如下code。

    首先在main中声明Class A的对象a,然后将对象a传入到Class B的__init__(self,object)中,这样self.object就指向Class A。
    就可以调用Class A中的函数了。

    #!/usr/bin/env python
    # -*- coding: utf-8 -*-
    
    class A():
    	def __init__(self,parent):
    		self.parent = parent
    
    	def a(self):
    		print "Class A"
    
    class B(object):
    	def __init__(self,object):
    		self.object = object
    		self.object.a()
    
    	def b(self):
    		print "Class B"
    
    if __name__ == '__main__':
    
       	a = A(None)
       	b = B(a)
       	b.b()



    方法三: 

    直接在Class B中声明Class A的对象,该对象是Class B的self.A_object。

    #!/usr/bin/env python
    # -*- coding: utf-8 -*-
    
    class A():
    	
    	def a(self):
    		print "Class A"
    
    class B(object):
    	def __init__(self):
    		self.A_object = A()
    		self.A_object.a()
    
    	def b(self):
    		print "Class B"
    
    if __name__ == '__main__':
    
       	b = B()
       	b.b()



    展开全文
  • 实参、形参以及默认参数:形参在没有调用之前没有实际的值,实参就是调用函数的时候传递给函数的变量,默认参数就是当我调用一个有参数的函数但是没有传递给他实参的时候的默认参数值。 2、模块和包 python中有很多...
  • Python中,可以通过class关键字定义自己的类,然后通过自定义的类对象创建实例对象。最简单的类如下:>>> class FirstClass: >>> pass类的实例化如下:>>> a = FirstClass() >>> b = FirstClass()>>> print(a) ...
  • python中,平常你认为的一些是内置函数的如list(),str()等,其实都是一些内置的,也就是说,你在使用它的时候都是创建该的实例。 python3.x所有的都是新式(隐式的继承了object元),新式是相对于...
  • Python类和实例关系

    2016-12-05 23:49:06
    属性提供对象状态行为 实例代表程序领域中具有元素。实例属性记录数据,而每个特定对象数据都不同实例对象是具体元素 像函数那样调用对象会创建新实例对象 每个实例对象继承类的属性并获得了自己...
  • Python的魔法函数

    2018-08-18 11:12:00
    typeobject的关系 判断对象的类型 上下文管理器 结构 #!/usr/bin/env python # -*- coding: utf-8 -*- # Author: rex.cheny # E-mail: rex.cheny@outlook.com # 类名后面写(obj...
  • Python从设计之初就已经是一门面向对象语言,正因为如此,在Python中创建一个类和对象是很容易 面向对象技术简介 类(Class): 用来描述具有相同属性和方法对象集合。它定义了该集合中每个对象所共有属性...
  • Python函数和方法区别

    万次阅读 多人点赞 2019-04-28 21:48:23
    类和实例无绑定关系的function都属于函数(function); 与类和实例有绑定关系的function都属于方法(method)。 首先摒弃错误认知:并不是类中调用都叫方法 函数(FunctionType) 函数是封装了一些独立...
  • Python函数分类及操作

    2019-01-30 22:36:00
    函数的定义:1、数学意义的函数:两个变量:自变量x因变量y,二者的关系 2、Python函数的定义:函数是逻辑结构化过程化得编程方法 定义面向过程:过程 def ( 在Python中,过程是没有返回值的函数) 1 ...
  • 前面安装graphvizpychallgraph可以参考文章1文章2,其中文章2具体讲解了在文件内部添加代码块的方法绘制指定部分在运行时函数的调用关系图。 但是在命令行使用pycallgraph时总是出错,查阅了文档,还是报错,...
  • 方法一:self.方法(参数列表),注意参数列表不需要...# 利用测试次数鸡蛋个数的关系变化带来的确定的楼层数来解题 class dropeggs: def superEggDrop(self, K: int, N: int) -> int: remainTestCount = 1 ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 855
精华内容 342
关键字:

python类和函数的关系

python 订阅