问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

python中功能内的功能,如何在外部调用?类内,方法内的方法呢?在外部又是...

发布网友 发布时间:2022-04-24 13:47

我来回答

7个回答

懂视网 时间:2022-05-10 07:07

Python中类与类之间属性和方法的调用

class A(object): #定义一个类
 name='python' #类属性
 def __init__(self): #实例属性
  self.age=18
 def a_print(self): #实例方法
  print('aaa')
 @classmethod #类方法
 def b_print(cls): #cls指代当前的类
  print(cls.__name__) #获取当前类名
 @staticmethod #静态方法
 def c_print():
  print('static')
print(A.name) #调用类属性
A.b_print() #调用类方法
# print(A.age) 不可以调用实例属性
print(A().age) #匿名实例对象可以调用实例属性
a_obj=A() # 类对象 可以调用这个类中所有方法和属性
print(a_obj.age)
print(a_obj.name)
a_obj=A() #在外部生成一个对象
a_obj.num=1000 #对 对象增加一个额外属性,并赋值
def func(a_obj): #再把这个对象传递到另一个方法中
 print(a_obj.num) #这个方法中我就可以拿到这个对象,并用这个对象获取到这个对象额外添加 的数据
func(a_obj)
#可以在方法中传递数据
#一个类想要调用另一个类的方法和属性,有两种形式
# 1.继承
# 2.把另外一个对象传递到这个类中,在这个类中调用实例对象
# 把一个类当做是另一个类的属性,通过属性调用的方式调用另一个类的方法
class B(object):
 def __init__(self):
  self.a_obj=A() #把A对象直接作为B的属性
 def func(self,a_obj):
  print(a_obj.num)
  a_obj.a_print()
b_obj=B()
b_obj.a_obj.a_print()
b_obj.a_obj.b_print()
b_obj=B()
b_obj.func(a_obj)

例:

son.py和all.py在同一个文件夹下面,可以通过from son import *或者import son来互相调用。

可以动态实例化son.py里面的SON类,而且也可以把ALL的实例通过参数传递给SON,从而调用ALL类的方法。

all.py

from son import *
class ALL():
 def __init__(self):
 self.mSon = SON(self)
 def getAll(self):
 print "=================getall---------------"
 return self.mSon.getSon()
 def getAlltest(self):
 print "=================getAlltest---------------"
Instance = ALL()
Instance.getAll()

son.py

class SON():
 def __init__(self, instance):
 self.mBattle = instance
 def getSon(self):
 return self.mBattle.getAlltest()

更多Python相关技术文章,请访问Python教程栏目进行学习!

热心网友 时间:2022-05-10 04:15

有两种方法:

一、

通过返回内部中定义的方法再在外部调用,像这样:

def a():

def b():

print('b')

return b

a()()

class c:

def f(self):

def g():

print ('g')

return g

c().f()()

这是运行截图:

二、

直接将内部方法定义成global的,像这样:

def a():

global b

def b():

print('bbb')

a()

b()

class c:

def f(self):

global g

def g():

print ('ggg')

c().f()

g()

这是运行截图:

追问牛!继续请教下,第一张图中,a()()、c().f()(),为啥不用写内层的方法名,如:a().b()、c().f().g(),假如b和g还有其他与它并排的方法呢,如何辨别?

热心网友 时间:2022-05-10 05:33

可以这样写的啊

def outer():  

。。 x = 1  

。。 def inner():  

。。。print(x)  

。。inner() # 在外函数调用内函数   

outer() # 调用外函数

或者这样也可以

热心网友 时间:2022-05-10 07:08

class内的方法好调用
新建一个实例类s=S(),就可以直接调用类里面的方法了
如果只是一个def函数,就要保存成一个库,然后倒入追问我是问,方法内的方法,外部能否调用,如:
class studentmanager():
def run(self):
def help():
while True:

追答可以的,类内的方法可以调用,但是要加self

热心网友 时间:2022-05-10 08:59

可以单独拉出来一个.py文件把要用的的方法定义在里面,最后在另一个文件中import的时候通过….…导入,然后可以直接用。追问我是问,方法内的方法,外部能否调用,如:
class studentmanager():
def run(self):
def help():
while True:
help是方法run内的方法

追答在外面直接调用help()是不可以的。
但是可以通过studentmanager.help()的方式调用。

热心网友 时间:2022-05-10 11:07

外部调用可以通过记事本,写入函数改为.py后缀,放到需要调用的文件夹之下,再利用import进行调用,可以直接通过赋予的名字调用class下面的方法,调用方法用.就可以

热心网友 时间:2022-05-10 13:32

def c():
......
def a():
def c():
......
......
c()
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
为什么我的电脑没有E/H/G,盘? 刚买的电脑无法创建d盘,不能指派驱动器号d:。只能指派abcefgh盘。创... ...了D盘的文件 卸载虚拟光驱后 计算机就成了CEFG盘 大 陈旧伤疤该用什么方法清除? 几年前被指甲弄到的疤痕,怎么让疤痕好了 opporeno5耳机模式怎么调试 最近想入手一块GTX770显卡 想入手一块GTX770的显卡 求各位大神推荐一下哪个性价比高 前提是要NV... 400×5的积末尾有两个零.___.(判断对错 如果积的末尾有一个0,则两个因数的末尾至少有一个0.___(判断对错) 向好友要微信红包句子有哪些? 花技招展什么意思? 这些词的拼音以及意思。要快,越快越好。 花枝招展和花容月貌是近义词吗? 花枝招展的使用对象是什么?可以形容植物吗? “春天像小姑娘,花枝招展的.”请问“花枝招展”什么意思? 呼朋引伴的拼音,花枝招展的拼音。 烘托,静默,·风筝,抖擞,健壮,呼朋引伴,花枝招展,窠巢的拼音 请问烘托,静默,风筝,抖擞,健壮,呼朋引伴,花枝招展的拼音。 “呼朋引伴”和“花枝招展”的拼音分别是什么? “花枝招展”是什么意思? “花枝招展”的拼音是什么? 花枝招展的拼音怎么拼? 12306的常用联系人是什么意思 12306两个帐号同一个常用联系人可以吗 为什么我的12306账号里,才十几个常用联系人(全部都通过核验),现在却添加不了新的人,显示为:您 龙珠z最强的小布欧和比鲁斯pk,谁的胜算较大 《龙珠》比鲁斯这个破坏神,为什么睡眠时间这么长? 《龙珠》中,破坏神比鲁斯最终为何没摧毁地球? 《七龙珠》中,破坏神比鲁斯来到地球有何目的? python 在类中如何让方法之间互相调用 python-Python的类怎么调用其他类的方法 Python的类怎么调用其他类的方法? python中怎么在一个函数内调用另外一个函数,类 Python中如何使具有相同父类中的两个子类之间进行方法调用 Python 不同类的对象之间如何交互,在设计的时候有何遵循的规则便于后期... python中类内部的函数可以互相调用吗? python中如何在一个类中调用另一个类的method中的变量?能实现吗?能 ... python 怎么调用其他模块类的方法 Python类中如何在一个方法中调用另外一个方法 python 类之间调用 class python中一个类的方法中怎样使用另一个类的方法中的一个变量 python中如何传递不同类中的变量? python中同一个类的函数怎么调用另一个函数里的数据 Python中子类怎样调用父类方法 modbus是什么意思? 暗后面加什么字好听 modbus 是什么? 有哪些诡异或带着点空灵,但又很好听的黑暗风歌曲 modbus缺点