发布网友 发布时间: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内的方法好调用追答可以的,类内的方法可以调用,但是要加self
热心网友 时间:2022-05-10 08:59
可以单独拉出来一个.py文件把要用的的方法定义在里面,最后在另一个文件中import的时候通过….…导入,然后可以直接用。追问我是问,方法内的方法,外部能否调用,如:追答在外面直接调用help()是不可以的。
但是可以通过studentmanager.help()的方式调用。
热心网友 时间:2022-05-10 11:07
外部调用可以通过记事本,写入函数改为.py后缀,放到需要调用的文件夹之下,再利用import进行调用,可以直接通过赋予的名字调用class下面的方法,调用方法用.就可以热心网友 时间:2022-05-10 13:32
def c():