Python内部类,内部类调用外部类属性,方法
一 Python中内部类
典型定义:
class MyOuter:
age=18
def __init__(self,name):
self.name=name class MyInner:
def __init__(self,inner_name):
self.inner_name=inner_name out=MyOuter('lqz')
inner=out.MyInner('lqz_inner')
print(inner.inner_name)
二 内部类调用外部类的类属性和类方法
(注意是类属性和类方法,不是对象属性和对象的绑定方法)
class MyOuter:
age=18
def __init__(self,name):
self.name=name
@classmethod
def outer_class_method(cls):
print('我是外部类的类方法') class MyInner:
def __init__(self,inner_name):
self.inner_name=inner_name
def inner_method(self):
print('我是内部类的对象方法')
MyOuter.outer_class_method() out=MyOuter('lqz')
inner=out.MyInner('lqz_inner')
inner.inner_method()
三 内部类调用外部对象的对象属性和方法
需要在内部类构造的时候,把对象传过来
class MyOuter:
age=18
def __init__(self,name):
self.name=name
@classmethod
def outer_class_method(cls):
print('我是外部类的类方法')
def outer_obj_method(self):
print('我是外部类对象的绑定方法') class MyInner:
def __init__(self,inner_name,obj):
self.inner_name=inner_name
self.obj=obj
def inner_method(self):
print('我是内部类的对象方法')
MyOuter.outer_class_method()
self.obj.outer_obj_method() out=MyOuter('lqz')
inner=out.MyInner('lqz_inner',out)
inner.inner_method()
Python内部类,内部类调用外部类属性,方法的更多相关文章
- python中的嵌套类(内部类调用外部类中的方法函数)
在为书中版本是3.X的,但2.X不太支持直接调用. 所以,在PYTHON2.X中,要在内部类中调用外部类的方法,就必须得实例化外部类,然后,传入实例进行调用. 花了我两个小时啊,资料没找到,自己一个一 ...
- 牛客网Java刷题知识点之什么是内部类、为什么要使用内部类、内部类如何使用外部类的属性和方法、成员内部类、局部内部类、静态内部类、匿名内部类
不多说,直接上干货! 可以将一个类的定义放在另一个类的定义内部,这就是内部类. 内部类是一个非常有用的特性但又比较难理解使用的特性(鄙人到现在都没有怎么使用过内部类,对内部类也只是略知一二). 内部类 ...
- 深入理解Java中为什么内部类可以访问外部类的成员
内部类简介 虽然Java是一门相对比较简单的编程语言,但是对于初学者, 还是有很多东西感觉云里雾里, 理解的不是很清晰.内部类就是一个经常让初学者感到迷惑的特性. 即使现在我自认为Java学的不错了, ...
- Java中内部类揭秘(一):外部类与非静态内部类的”相互可见性“
声明:本博客为原创博客.未经同意,不得转载.原文链接为 http://blog.csdn.net/bettarwang/article/details/27012421. ...
- Java调用外部类定义的方法(Static与无Static两种)
首先定义方法 public class Dy { public int Add(int x,int y){ //定义Add(),该方法没有被static修饰 return x+y; } public ...
- Python面向对象静态方法,类方法,属性方法
Python面向对象静态方法,类方法,属性方法 属性: 公有属性 (属于类,每个类一份) 普通属性 (属于对象,每个对象一份) 私有属性 (属于对象,跟普通属性相似,只是不能通过对象直接访问) 方法: ...
- 139、Java内部类之使用this访问外部类属性
01.代码如下: package TIANPAN; class Outer { // 外部类 private String msg = "Hello World !"; class ...
- this引用逃逸(使用内部类获取未外部类未初始化完的变量),多态父类使用子类未初始化完的变量
1,this引用逃逸 并发编程实践中,this引用逃逸("this"escape)是指对象还没有构造完成,它的this引用就被发布出去了. 这是危及到线程安全的,因为其他线程有可能 ...
- 141、Java内部类之实例化外部类对象
01. 代码如下: package TIANPAN; class Outer { // 外部类 private static String msg = "Hello World !" ...
随机推荐
- Unity 实现一个简单的 TPS 相机
效果如下: 代码如下: public class TPSCamera : MonoBehaviour { /// <summary> /// 目标对象 /// </summary&g ...
- 【LeetCode算法题库】Day1:TwoSums & Add Two Numbers & Longest Substring Without Repeating Characters
[Q1] Given an array of integers, return indices of the two numbers such that they add up to a specif ...
- k8s踩坑记第1篇--rc无法创建
六一快乐!!! 什么是k8s,我不想解释,百度资料有很多,本系列只踩坑,不科普. 问题描述: 做Hello World的例子,结果get pods一直显示没有资源? 应用配置代码: apiVersio ...
- 【CentOS 7】nginx配置web服务器
1,安装过程 [root@VM_1_14_centos ~]# cd /data/ [root@VM_1_14_centos data]# wget http://nginx.org/download ...
- 如何通过阿里云APP进行域名备案?阿里云备案流程需要多久?
如何通过阿里云APP进行域名备案? 1.准备备案材料(很多初次使用阿里云APP进行备案的同学会问备案需要准备哪些资料,不二版本下面就给大家一一列举出来) 个人备案需要材料: ⑴<用户网站备案授权 ...
- ef5 数据库操作
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.T ...
- Oracle中的SQL分页查询原理和方法详解
Oracle中的SQL分页查询原理和方法详解 分析得不错! http://blog.csdn.net/anxpp/article/details/51534006
- 看oracle的sid
ps -ef|grep pmon 可以从进程名字里看到 也可以通过 sqlplus / as sysdbashow parameter instance_name
- 关于php的array_diff和array_diff_assoc的使用总结
关于php的array_diff和array_diff_assoc的使用总结 2015-11-07 17:01 184人阅读 评论(0) 收藏 举报 分类: php学习感想(1) 版权声明:本文为 ...
- LeetCode 404. Sum of Left Leaves (C++)
题目: Find the sum of all left leaves in a given binary tree. Example: 3 / \ 9 20 / \ 15 7 There are t ...