在python类中什么时候要把变量放到括号里,什么时候不需要? Python问题 在函数内使用全局变量的时什么时候需要加gl...

python \u7c7b \u8d4b\u503c\u662f\u5426\u52a0\u62ec\u53f7\u7684\u95ee\u9898

\u5bf9\u8c61\u8c03\u7528\u65b9\u6cd5\u65f6, \u5b9e\u9645\u4e0a\u662f\u901a\u8fc7\u7c7b\u8c03\u7528\u7684
a = muffedcalculator()
a.calc(expr)

\u5b9e\u9645\u4e0a\u662f\u8fd9\u6837\u8c03\u7528\u7684 muffledcalculator.calc(a, expr)
\u8fd9\u6837self \u5c31\u662f a, python\u9690\u542b\u5730\u628aa \u4f20\u8fdb\u65b9\u6cd5 \u66ff\u4ee3\u4e86self, \u5c31\u6210\u4e86\u7ed1\u5b9a\u7684\u65b9\u6cd5, \u5c31\u53ef\u4ee5\u6267\u884c\u4e86. \u5426\u5219\u5c31\u662f\u975e\u7ed1\u5b9a\u65b9\u6cd5

global\u662f\u7528\u4e8e\u58f0\u660e\u5168\u5c40\u53d8\u91cf\u3002
\u5f53\u4f60\u7684\u51fd\u6570\u4e2d\u53d8\u91cf\u6709\u8d4b\u503c\u8bed\u53e5\uff0c\u800c\u8fd9\u4e2a\u53d8\u91cf\u540d\u53c8\u521a\u597d\u540c\u5168\u5c40\u53d8\u91cf\u4e00\u6837\uff0c\u8fd9\u65f6\u5019\uff0c\u5982\u679c\u4f60\u5e0c\u671b\u7528\u7684\u662f\u5168\u5c40\u53d8\u91cf\u5c31\u8981\u52a0global\uff0c\u53cd\u4e4b\u51fd\u6570\u5c31\u4f1a\u521b\u5efa\u81ea\u5df1\u7684\u5c40\u90e8\u53d8\u91cf\u3002
\u7b80\u5355\u8bf4:
\u51fd\u6570\u5185\u4f7f\u7528\u5168\u5c40\u53d8\u91cf\uff0c\u53ea\u8981\u51fd\u6570\u5185\u6ca1\u6709\u4f7f\u7528\u8fd9\u4e2a\u53d8\u91cf\u540d\u6765\u505a\u8d4b\u503c\u8bed\u53e5\uff0c\u5c31\u4e0d\u9700\u8981\u52a0global\u3002

captain2005回答的是正确的。
这两个变量本来就不需要放进__init__的初始化参数中,如果你真的想要在调用时能够重新定义这两个参数,可以这样写:
class Randomwalk():
def __init__(self,num_points=5000,x_values:list=[0],y_values:list=[0]):
self.num_points=num_points
self.x_values=x_values
self.y_values=y_valuse
其次,第一个num_points是这个类的初始化函数中的一个参数,这个参数(变量)只能够在初始化函数中使用,而不能在这个类的其它方法中使用。self.num_points将num_points这个变量定义为这个类的一个属性,可以在这个类的其它方法中使用self.num_points获取并继续使用。
上面我给的一段代码中,也是将原本为__init__函数内部的变量x_values和y_values定义为这个类的一个属性,可以在这个类的其它方法中使用。

因为给的是常量,不是通过构造函数赋值的情况。
self.x_values=[0]
self.y_values=[0]
中括号里面的0表示所有元素都为0的list,并不是通过括号里面的参数赋值的,跟num_points=5000还是不一样的。
如果需要通过构造函数赋值,那么可以写成
class Randomwalk():
def __init__(self,num_points=5000,x_values,y_values):
self.num_points=num_points
self.x_values=x_values
self.y_values=y_values
这样的话构造Randomwalk对象的时候需要传入三个参数
obj=Randomwalk(6000,[0,0,2,3,4],[0,1,2,3,4,5])

因为x_values和y_values这两个属性不需要在初始化的时候通过函数赋值

  • 鍦╬ython绫讳腑浠涔堟椂鍊欒鎶鍙橀噺鏀惧埌鎷彿閲,浠涔堟椂鍊欎笉闇瑕?
    绛旓細captain2005鍥炵瓟鐨勬槸姝g‘鐨勩傝繖涓や釜鍙橀噺鏈潵灏变笉闇瑕鏀捐繘__init__鐨勫垵濮嬪寲鍙傛暟涓紝濡傛灉浣犵湡鐨勬兂瑕佸湪璋冪敤鏃惰兘澶熼噸鏂板畾涔夎繖涓や釜鍙傛暟锛屽彲浠ヨ繖鏍峰啓锛歝lass Randomwalk():def __init__(self,num_points=5000,x_values:list=[0],y_values:list=[0]):self.num_points=num_points self.x_values=x_v...
  • python鍦ㄥ畾涔夌被鐨鏃跺,濡備綍鎶婄被鍑芥暟浼犻掔粰鍙︿竴涓彉閲,濡備笅
    绛旓細鍑芥暟鏄粍缁囧ソ鐨勶紝鍙噸澶嶄娇鐢ㄧ殑锛岀敤鏉ュ疄鐜板崟涓锛屾垨鐩稿叧鑱斿姛鑳界殑浠g爜娈点傚嚱鏁拌兘鎻愰珮搴旂敤鐨勬ā鍧楁э紝鍜屼唬鐮佺殑閲嶅鍒╃敤鐜囥備綘宸茬粡鐭ラ亾Python鎻愪緵浜嗚澶氬唴寤哄嚱鏁帮紝姣斿print()銆備絾浣犱篃鍙互鑷繁鍒涜鍑芥暟锛岃繖琚彨鍋氱敤鎴疯嚜瀹氫箟鍑芥暟銆備竴銆佸畾涔変竴涓嚱鏁 浣犲彲浠ュ畾涔変竴涓敱鑷繁鎯宠鍔熻兘鐨勫嚱鏁帮紝浠ヤ笅鏄畝鍗曠殑瑙勫垯锛1.鍑...
  • 鍦≒ython涓暣鏁扮被鍨嬪拰瀛楃涓茬被鍨嬩笉鑳界洿鎺ユ嫾鎺ユ垨鑰呮瘮杈冨ぇ灏闇瑕佹妸瀹冧滑...
    绛旓細鍦≒ython涓紝鏁存暟绫诲瀷鍜屽瓧绗︿覆绫诲瀷鏄笉鍚岀殑绫诲瀷锛屼笉鑳界洿鎺ヨ繘琛屾嫾鎺ユ垨姣旇緝澶у皬銆闇瑕佸皢瀹冧滑杞崲鎴愮浉鍚岀殑绫诲瀷鎵嶈兘杩涜鎿嶄綔銆傝灏嗘暣鏁拌浆鎹负瀛楃涓诧紝鍙互浣跨敤str()鍑芥暟锛屼緥濡傦細瑕佸皢瀛楃涓茶浆鎹负鏁存暟锛屽彲浠ヤ娇鐢╥nt()鍑芥暟锛屼緥濡傦細闇瑕佹敞鎰忕殑鏄紝濡傛灉瀛楃涓蹭腑鍖呭惈闈炴暟瀛楀瓧绗︼紝杞崲涓烘暣鏁颁細鎶涘嚭ValueError寮傚父銆傚彟澶...
  • python涓鍏充簬绫讳笌瀹炰緥濡備綍缁戝畾灞炴т笌鏂规硶鐨勪唬鐮佸疄渚
    绛旓細鍓嶈█python绫涓庡疄渚嬬殑鏂规硶鐨勮皟鐢ㄤ腑瑙夊緱浜閲闆鹃噷锛屾濊冧箣鍚庡皢鑷繁鐨勬兂娉曡褰曚笅锛屼竴鏉ュ姞娣辫嚜宸辩悊瑙o紝宸╁浐鑷繁璁板繂锛岃屾潵甯姪涓浜涙兂瑕佸涔爌ython鐨勬湅鍙嬬悊瑙h繖闂ㄦ娊璞$殑璇█锛岀敱浜嶱ython鏄姩鎬佽瑷锛岀被浠ュ強鏍规嵁绫诲垱寤虹殑瀹炰緥鍙互浠绘剰缁戝畾灞炴т互鍙婃柟娉曪紝涓嬮潰鍒嗗埆浠嬬粛銆1.绫荤粦瀹氬睘鎬х被缁戝畾灞炴у彲浠ョ洿鎺ュ湪class涓畾涔夊睘鎬э紝...
  • python涓鍦ㄤ粈涔鎯呭喌涓嬩娇鐢ㄥ彉閲
    绛旓細鍦≒ython涓紝鍙橀噺瀹氫箟鏃朵笉闇瑕鎻愬墠瀹氫箟绫诲瀷锛岃В閲婂櫒浼氳嚜鍔ㄨ繘琛屽畾涔夛紝濡傛灉闇瑕佹敼鍙橀噺鐨勭被鍨嬪垯闇瑕佷娇鐢ㄥ彟澶栫殑鍑芥暟銆傚湪浣跨敤鍙橀噺鐨鏃跺锛屼笉闇瑕佹彁鍓嶅0鏄庯紝鍙渶瑕佺粰杩欎釜鍙橀噺璧嬪煎嵆鍙備絾鏄紝褰撶敤鍙橀噺鐨勬椂鍊欙紝蹇呴』瑕佺粰杩欎釜鍙橀噺璧嬪硷紱濡傛灉鍙啓涓涓彉閲忥紝鑰屾病鏈夎祴鍊硷紝閭d箞Python璁や负杩欎釜鍙橀噺娌℃湁瀹氫箟銆
  • python绫鐨勫畾涔変笌浣跨敤鏄浠涔
    绛旓細绫绘槸鍏锋湁鐩稿悓灞炴у拰鏂规硶鐨勪竴缁勫璞$殑闆嗗悎銆鍦≒ython涓紝瀵硅薄鏄被鐨勫疄渚嬶紝绫绘槸瀵硅薄鐨勬娊璞°3銆佸畾涔夌被 瀹氫箟绫荤殑璇硶鍜屽畾涔夊嚱鏁扮殑璇硶绫讳技锛屽畾涔夊嚱鏁颁娇鐢ㄧ殑鍏抽敭瀛楁槸def锛岃屽畾涔夌被浣跨敤鐨勫叧閿瓧鏄痗lass銆傚畾涔夌被鐨勫熀鏈娉曟牸寮忓涓嬶細class 绫诲悕:pass 浠ュ畾涔変竴涓渶绠鍗曠殑绫讳负渚嬶紝杩欓噷瀹氫箟浜嗕竴涓被鍚嶄负Cat鐨勭被...
  • python class鐢ㄦ硶鐞嗚В
    绛旓細鍦╬ython涓娇鐢╛_寮澶 骞朵互__缁撳熬鐨勬柟娉曪紝绉颁箣涓洪瓟娉曟柟娉曪紱init(self) 鏄被鐨勫垵濮嬪寲鏂规硶锛屼篃绉版瀯閫犳柟娉曪紝鏄竴绉嶇壒娈婄殑榄旀硶鏂规硶锛 init(self)鍦ㄥ疄渚嬪寲鍚庯紝浼氳嚜鍔ㄨ皟鐢紝鑰屼笉鐢ㄦ墜鍔ㄨ皟鐢紝鎵浠ヤ竴鑸妸灞炴ц缃湪_init__()閲岋紱甯哥敤鍒扮殑榄旀硶鏂规硶杩樻湁锛歴tr(self) 銆 del(self)绛夈4銆佺被鐨勭户鎵夸互鍙妔uper...
  • python涓鐨勭被鍨嬭浆鎹㈤兘鏈変粈涔,鐢ㄥ湪浠涔鍦烘櫙涓?
    绛旓細杞崲鏂瑰紡锛氫娇鐢╥nt()鍑芥暟杞崲锛 鍙湁绗﹀悎鏁存暟瑙勮寖鐨勫瓧绗︿覆绫绘暟鎹紝鎵嶈兘琚玦nt()鍑芥暟寮哄埗杞崲銆傦紙娉細鏁存暟褰㈠紡鐨勫瓧绗︿覆姣斿'6'鍜'1'锛屽彲浠ヨint()鍑芥暟寮哄埗杞崲銆傚叾娆★紝鏂囧瓧褰㈠紡锛屾瘮濡備腑鏂囥佺伀鏄熸枃鎴栬呮爣鐐圭鍙凤紝涓嶅彲浠ヨint()鍑芥暟寮哄埗杞崲銆傛渶鍚庯紝灏忔暟褰㈠紡鐨勫瓧绗︿覆锛岀敱浜Python鐨璇硶瑙勫垯锛屼篃涓嶈兘浣跨敤int(...
  • Python涓鐨勭被涓浠涔瑕佸疄渚嬪寲涓轰竴涓璞℃墠鑳戒娇鐢
    绛旓細def __init__(self,鎬у埆,骞撮緞,濮撳悕绛夌瓑):self.鎬у埆=鎬у埆 self.骞撮緞=骞撮緞 self.濮撳悕=濮撳悕 def 璇磋瘽(self,瑕佽鐨勮瘽):print(瑕佽鐨勮瘽)...灏忔槑=浜虹被(鐢,3宀,灏忔槑)灏忔槑.璇磋瘽('浣犲ソ锛')绫诲氨濂芥瘮鏄竴绫讳簨鐗╃殑鎶借薄锛屾槸涓涓ā鏉匡紝鎷ユ湁杩欎竴绫讳簨鐗╃殑灞炴у拰鍔熻兘銆備絾鏄浜庘滀汉绫烩濊繖涓被鏉ヨ锛屾瘡涓汉...
  • Python涓被涓庡璞$殑鍏朵粬璇存槑?
    绛旓細绫诲睘鎬х殑浠讳綍鍑芥暟瀵硅薄閮戒负閭d釜绫荤殑瀹炰緥瀹氫箟浜嗕竴涓柟娉曘傚嚱鏁板畾涔変唬鐮佷笉涓瀹氶潪寰楀畾涔夊湪绫讳腑锛氫篃鍙互灏嗕竴涓嚱鏁板璞¤祴鍊肩粰绫讳腑鐨勪竴涓眬閮ㄥ彉閲忋備緥濡:Function defined outside the class def f1(self, x, y):return min(x, x+y)class C:f = f1 def g(self):return 'hello world'...
  • 扩展阅读:python初学编程必背 ... python编程最高几级 ... 学python后到底能干什么 ... python编程入门自学 ... 学python最佳年龄 ... c++和python先学哪个 ... 在python中有s a b ... python基础代码大全 ... 零基础学python要多久 ...

    本站交流只代表网友个人观点,与本站立场无关
    欢迎反馈与建议,请联系电邮
    2024© 车视网