在Python中,我如何在类中创建将值分配给属性的方法

问题描述

我希望运行一个将值分配给对象而不是在括号中声明值的方法我有以下无效的代码。我对所有解决方案都开放,包括那些包含构造函数中包含的方法解决方案。

class Player:
    def __init__(self,name): 
        self.name = name
        
    #gather player detail method

    def player_details():
        return input('Name: ')

player1 = Player.player_details()
#I want the following line of code to output whatever the player name was entered as
print (player1.name)

解决方法

使用getter setter尝试此代码

职业玩家: def init (自身,名称=“”): self.name =名称

getter方法

def get_player_details(self): 返回self.name

设置方法

def set_player_details(self,x): self.name = x

player1 = Player()

使用设置器设置年龄

input_detail = input(“输入播放器名称:”)

#set输入作为玩家详细信息 player1.set_player_details(input_detail)

使用吸气剂回收年龄

print(player1.get_player_details())

print(player1.name)

,

您可以在此处像普通属性一样进行分配:

def player_details(self):
    self.name = input('Name: ')

或者您也可以得到一个论点:

def player_details(self,newName):
    self.name = newName
,

这是您要找的吗?您似乎意外地将您的方法创建为“静态方法”,即不访问该类属性的方法。您可以通过添加“ self”作为参数来更改它。

class Player:
        def __init__(self,name): 
            self.name = name
            
        #gather player detail method
    
        def player_details(self):
            self.name = input('Name: ')
    
player1 = Player.player_details()
# I want the following line of code to output whatever the player name was entered as
print (player1.name)
,

这样做达到了我想要的,谢谢。

interface User {
  name: string;
  age: number;
}

const user: User = {
  name: "John Smith",age: 20
};

getKeyValue(user,"name")

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...