繁体   English   中英

python 定义方法时如何使用self?

[英]python how to use self when defining a method?

我对编码很陌生。 我想了解何时使用“自我”。 在定义方法和调用方法时,我应该总是使用 self 吗?

在下面的代码中,#1 到#5,请帮助解释什么是错的,为什么?

class customer() :
    def __init__(self, name, age, cellNumber): 
        self.name = name
        self.age = age
        self.cellNumber = cellNumber
    def sayHi():   #1
        print("Hi hi!!")
    def info(): #2
        print(self.name + " is "+ str(self.age) + "Number is "+ self.cellNumber)

customer.sayHi() #3
print(brian.age, rex.cellNumber)
print(rex.age)
customer.info(rex)** #4
rex.info()** #5

self参数是 class 的 object。 如果您声明 class 方法,则应该通过它。 换句话说,您声明您的方法属于此 object 并将其传递给此方法。 尝试运行

def foo(string):
    print(string + ' from function')

class Bar:
    def foo(self, string):
        print(string + ' from ', self)

foo('Hi cruel world')
bar = Bar()
bar.foo('Hi cruel world')

你会看到

Hi cruel world from function
Hi cruel world from  <__main__.Bar object at 0x000001A0CA120608>

<__main__.Bar object at 0x000001A0CA120608> (地址可能不同)是bar class的Bar object

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM