python新手提问

「已注销」 2010-10-27 03:54:09
没学过C++/C#/JAVA,总之对面向对象不感冒...

#!/usr/bin/python
# Filename: class_init.py
class Person:
def __init__(self, name):
self.name = name
def sayHi(self):
print 'Hello, my name is', self.name
p = Person('Swaroop')
p.sayHi()


这是教程中的一个例子,请求帮助:
1、__init__方法中,self.name = name能否改为 name=name(显然不行,why),方法中的域只能这样定义吗?
2、self的作用域,在sayHi方法中,self.name为何不代表自己的一个域?

...全文
225 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
「已注销」 2010-10-29
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 loworth 的回复:]

Python code

def __init__(self, var_name):
self.name = var_name #赋值给对象的name属性
name = var_name # 赋值给方法的私有变量
[/Quote]
谢谢 看代码也该是这样 只是没想明白为什么Python要这么做。
loworth 2010-10-28
  • 打赏
  • 举报
回复

def __init__(self, var_name):
self.name = var_name #赋值给对象的name属性
name = var_name #赋值给方法的私有变量
「已注销」 2010-10-28
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 i_nbfa 的回复:]

不感冒就应该好好学学,不然你怎么写代码呢。
self代表实例对象本身(不是Person类本身)
代码变形下相当于:
Python code

class Person:
def sayHi(self):
print 'Hello, my name is', self.name;
p = Person();
name = 'Swaroop';
p.name = na……
[/Quote]
首先谢谢各位的热心回答。
如i_nbfa所言,self代表实例对象本身,那么这个实例中有没有name成员。(是不是只有两个方法成员)
autumanloo 2010-10-27
  • 打赏
  • 举报
回复
1、__init__方法中,self.name = name能否改为 name=name(显然不行,why),方法中的域只能这样定义吗?
俺也是新手,关于这个:self.name=name 会将name定义为Class Person的所有实体的一个属性,每一个instance会有其不同的值。name=name就只是__init__()这个方法的局部变量复制而已
I_NBFA 2010-10-27
  • 打赏
  • 举报
回复
不感冒就应该好好学学,不然你怎么写代码呢。
self代表实例对象本身(不是Person类本身)
代码变形下相当于:

class Person:
def sayHi(self):
print 'Hello, my name is', self.name;
p = Person();
name = 'Swaroop';
p.name = name;
p.sayHi();

这里self代表实例p
bearnedzq 2010-10-27
  • 打赏
  • 举报
回复
1 name=name 也没有意义啊
虽然你的本意是想将传进来的name赋值给对象里的name,但是不加任何前缀的话,python编译器就糊涂了

2 self表示对象自己
任何引用对象自己的变量,比如name,都要加上 self 前缀的。
iambic 2010-10-27
  • 打赏
  • 举报
回复
name = name是把name复制给自己,从字面上看就是如此,为什么你觉得这种做法也有合理的可能?
self是函数传递进来的一个参数,它的所谓“作用域”,可以看成和普通函数参数一样。什么叫“self.name为何不代表自己的一个域”?
李察德-泰森 2010-10-27
  • 打赏
  • 举报
回复
self 在这里代表 class Person
内容概要:本文系统研究了构网型变流器的正负序阻抗解耦特性及其在弱电网环境下的稳定性表现,重点依托Matlab/Simulink仿真平台,构建了详细的阻抗数学模型,设计了解耦控制策略,并采用小信号扫频法进行频域辨识与稳定性验证。研究深入探讨了构网型变流器与传统跟网型逆变器在正负序阻抗特性上的本质差异,结合虚拟同步发电机(VSG)等先进控制技术,分析其在抑制宽频带振荡、削弱锁相环动态耦合等方面的优越性。文中不仅提供了完整的仿真模型与MATLAB代码实现,还整合了光伏、风电、储能、微电网等多类新能源系统的阻抗建模与稳定性分析资源,形成了一套面向新型电力系统稳定性的综合性技术资料体系,具有较强的科研复现与工程参考价值。; 适合人群:面向具备电力电子、电力系统自动化、新能源并网等专业背景的研究生、高校教师及工程技术人员,特别适用于从事阻抗建模、小干扰稳定性分析、宽频振荡机理研究以及撰写高水平学术论文的科研工作者。; 使用场景及目标:①掌握构网型变流器正负序阻抗建模与扫频辨识的仿真方法;②深入理解VSG等构网型控制在弱电网中提升稳定性的内在机理;③复现顶刊论文中的阻抗分析流程与稳定性判据应用;④利用提供的成熟模型与代码加速科研进程,支撑课题研究与学术成果产出。; 阅读建议:建议结合文中提供的Simulink模型与MATLAB代码,按照“理论建模—仿真搭建—扫频激励—频响提取—Nyquist判据分析”的完整流程进行实践操作,重点关注扫频信号的注入方式、频率范围设置及阻抗曲线的物理意义解读,并参考博士论文复现案例深化对复杂动态耦合问题的理解。

37,738

社区成员

发帖
与我相关
我的任务
社区描述
JavaScript,VBScript,AngleScript,ActionScript,Shell,Perl,Ruby,Lua,Tcl,Scala,MaxScript 等脚本语言交流。
社区管理员
  • 脚本语言(Perl/Python)社区
  • WuKongSecurity@BOB
加入社区
  • 近7日
  • 近30日
  • 至今

试试用AI创作助手写篇文章吧